使用 WLM 充分发挥 pSeries 服务器的能力

使用 WLM 充分发挥 pSeries 服务器的能力

  •  
随着国内信息技术和应用的飞速发展,许多单位的日常业务都已使用计算机处理,计算机已经在很大程度上改变了人们的生活、学习和工作的习惯以及流程。比如很多大学已将学籍管理,课程管理、校园一卡通等很多应用投入使用。随着应用范围的扩大和用户数量的增多,很多大学正在考虑或已经开始用较大的 UNIX 小型机进行应用、数据和服务器的集成。

但这些应用有一些共同的特点导致服务器有大量运算能力和内存资源在某些时刻的闲置。一个是这些应用在一段时间之内的负荷往往是即不均匀的,比如通常晚上都不会有太大的负荷,或者某一应用在新学期开始时的负荷几倍于平时等。第二个特点是为了保证应用的响应时间,在系统设计时往往就会对 CPU 、内存等留出一定余量。还有一个就是由于系统的固有特点,运行这些应用时 CPU 往往会产生一定的 I/O 等待,实际上也就是闲置的 CPU 周期。

假设一台系统在白天的 10 个小时中平均 60%CPU 周期用于 systemuser ,另外有 15%I/O wait25%idle ,而在其余的 14 个小时中分别有 30%5%65%system + userI/O waitidle ,则实际上这台系统一天中有 10x0.4+14x0.7=13.8 个系统小时实际上是消耗在无意义的运转之中,或者说客户宝贵的经费中有接近一半实际上是白花了。

有什么办法可以将这些闲置的处理能力和计算资源利用起来呢?首先想到的会是在系统上再运行其他的应用,特别是大学、科研机构等单位在科研和教学活动中对于计算能力和计算资源有极大的渴求,如果将这些闲置的计算能力和资源利用起来,对科研和教学的促进就绝不是一些有限的经费所能衡量的了。而且若将计算应用于事务性应用放在一台系统上运行,计算应用可以充分利用包括事务性应用产生的 I/O wait 在内的所有闲置资源,得到 1 + 1 2 的效果。

但如果只是简单地将计算应用在运行了重要的事务性应用的系统上启动,系统将一视同仁地为所有进程分配资源,必将造成在事务性应用有较大负荷时大量资源被计算应用占用而事务性应用相应时间无法缩短,严重影响单位的正常运作的现象。

综上所述,我们需要的是一个满足以下要求的解决方案:
l 在同时运行计算应用和事务性应用的系统上,计算资源得到最充分的利用,例如 CPU 用于 system+user 的时间为 100%
l 任何时候,不管有多少计算应用都不会影响事务性应用的性能,或者说任何时候事务性应用的使用者都无法察觉是否有计算应用正在同时运行。
l 在事务性应用负荷减少的时候,计算应用将自动利用所有多出的资源,无需人工干涉。
l 计算应用的使用者无需关心是否有事务性应用在运行,以及有多少资源由系统分配给了自己,对他来说,好像有一台完整的计算系统供他使用,与真实系统的唯一区别就是这台系统的性能是随时间变化的,比如白天时 10 分钟算一步,而到了晚上 2 分钟就可计算一步。
l 系统管理最大程度自动化,简单方便。
l 系统安全性得到充分保障。
Unix 系统都支持优先级的设置,是否可以将为不同应用设置不同优先级的办法做为解决方案呢?通常事务性应用都是一经启动就连续运行数月甚至更长时间的,而计算应用都有自己的运行时间,也许几个小时即可结束,又会有新的计算任务提交上来。同时计算应用的数量,名称也是经常变化的。可想而知,设置优先级的方法是无法满足要求的。

可不可以用动态分区( DLPAR )的办法呢?比如在一个 16 CPU 的系统上设置 2 个分区,一个用于事务性应用,另一个用于计算应用。白天给事务性应用分区分配 14CPU ,计算应用分区分配 2CPU ;到了晚上则将事务分区改成 2 CPU 而计算分区改成 14CPU 。听起来似乎不错,但有一个重大障碍,即计算应用无法动态改变使用多少 CPU 。在以上例子中,一个计算应用在白天启动时设置为在 2CPU 上并行运行,到了晚上,虽然计算分区中有了 14 CPU ,但该应用将仍然只使用 2CPU

只有 AIX 系统中提供的 WLMwork load manager )是最完美的解决方案并可完全满足以上对系统资源调度策略的所有要求。 WLM 可以通过 sharelimit 的设置,实现计算应用充分利用事务性应用变化的闲置资源,而又丝毫不影响事务性应用的运行。下面是一个设置实例。

首先建立 class ,本例中一个 classoracle ,代表事务性应用,另一个是 batch ,代表计算应用。修改文件 /etc/wlm/standard/rules 为:
* class resvd user group application type tag
system - root - - - -
oracle - oracle - - - -
batch - batch - - - -
default - - - - - -

然后修改 /etc/wlm/standard/limits 文件:
system:
memory = 1%-100%;100%
batch:
CPU = 1%-10%;100%
oracle
CPU = 1%-90%;100%





再修改 /etc/wlm/standard/shares
batch:
CPU = 1
oracle:
CPU = 9

设置并启动 WLM 后,系统即可根据调度策略自动分配资源,无需人工干预。(当然如需要的话也可随时修改。)无论事务性应用的用户还是计算应用的用户均不会觉察到对方的存在,而系统资源的利用率则可趋于 100%

但还有一个安全问题没有完全解决。通常管理人员不希望有许多用户登录到运行着重要事务性应用的主机上来运行自己的程序。我们可以借助于 IBMLoad Leveler 来实现这一目标,设置一台小型系统作为计算用户的登录 / 调试 / 任务提交机, Load Leveler 将自动将用户所提交的所有作业排成一个或多个队列,在主系统上在 WLM 的安排下与事务性应用同机运行,计算用户将永远没有机会直接登录进主系统,也不必关心自己的作业是如何完成的,只需经过一段时间后检查返回的计算结果即可。同时用户还可获得如断点设置和重启动等功能。

完整的系统框架见下图。 






使用以上方案,用户即可充分利用手中的资源,又可保证系统的安全
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值