Solaris Resource Manager 1.3 系统管理指南

第 1 章 概述

Solaris Resource Manager 软件确保用户、组以及应用程序可以使用资源。它提供分配和控制主要系统资源的能力,如 CPU、虚拟内存、物理内存(仅供 Solaris 8 上的 Solaris Resource Manager 1.3 使用)和进程数目。另外还实施管理策略,对不同的用户可以访问的资源,特别是允许每个用户可以消耗这些资源的级别,进行管理。Solaris Resource Manager 产品是服务器整合和资源更有效利用的关键性工具。

Solaris Resource Manager 简介

所解决的组织目标

信息技术 (IT) 企业通常必须对成本进行控制并确保企业应用程序的服务等级。资源管理能够降低总拥有成本,对系统的用户及其使用系统的方式进行更加精确的控制,有时还能同时实现这两个目标。

管理员借助 Solaris Resource Manager 软件对利用率进行分类划分优先级,可以在非高峰时间段有效地利用能力储备,由此经常可以消除增加处理能力的需要。

Solaris Resource Manager 借助在系统内部分割工作负荷,使得系统管理员可以在单一系统上运行和管理彼此不同的应用程序,而不是将整个系统-连同其整个峰值能力-交给每个应用程序。传统上,用于确保可预见服务和响应时间的最为常见的方法是让每个系统主管一种功能。该方法有效,但数据中心中系统的迅速扩充既昂贵又难于管理。

Solaris Resource Manager 可将若干个应用程序整合在同一台 UNIX® 服务器上,从而能真正利用所有可用资源。同时,所有用户都能接收到与其服务等级及其工作的相对重要性相符的资源。

主要 Solaris Resource Manager 功能

下列表格确认并简单介绍了本手册中所讨论的主要系统资源功能。

系统资源Solaris Resource Manager 参数描述
 CPU 份额cpu.shares 分配给某个 lnode 的 CPU 时间,以份额的数量为单位规定数据库文件的限制。Solaris Resource Manager 可对所有可用系统资源进行分配;也就是说,当资源可供使用时,一个 lnode 就能接收比其分配数量更多的资源。
 CPU 应计cpu.accrue 对于组中所有 lnode 及当前 lnode 的应计 CPU 利用率
 内存界限memory.limit 可使所有进程附加在 lnode 上的最大虚拟内存利用率。这个界限是在界限数据库文件中规定的固定值。值为零时表示没有设置界限。
 处理内存界限memory.plimit 进程虚拟内存界限的最大值。这是在界限数据库文件中规定的固定值。值为零时表示没有设置界限。
 物理内存限制rss.limit(仅供 Solaris 8使用) 应用于附加到 lnode 的进程集合的物理内存上限(以指定的单位计)。上限必须是正数。
 应计内存memory.accrue 在一段时间内所使用的总内存资源。该值的衡量单位为字节-秒。
 进程数目process.limit 根据界限数据库文件中规定的固定界限限制一个用户能同时进行的进程的数目。
 每个用户登录次数flag.onelogin flag.nologin禁止用户登录或根据界限数据库文件中规定的规定界限限制每个用户和/或调度组能同时进行的登录对话的数目。Solaris Resource Manager 可使用 PAM 鉴别记录和 utmp(4) 条目跟踪登录次数。计数器可自动增大或减小。
 连接时间terminal.limit terminal.usage terminal.accrue Solaris Resource Manager 可自动跟踪一个用户的连接时间,并把这个时间与系统管理员或组长在界限数据库文件中规定的固定界限进行对比。当一个用户接近连接时间的界限时,Solaris Resource Manager 就会向该用户的终端发送警告信息。当达到该界限时,系统就会通知用户并在短时间内强迫该用户退出。

何时使用 Solaris Resource Manager

Solaris Resource Manager 可以在各种各样的情形下提供有效的资源控制,其中包括服务器整合,因特网服务提供商 (ISP) 万维网主机服务,批处理,管理用户人数众多且种类各样的网站,以及制定策略,以确保关键性的应用程序得到其所需的响应时间。

服务器合并

Solaris Resource Manager 对于把多个应用程序整合到一个服务器上的环境是理想选择。对众多计算机进行管理的成本和复杂性促使系统管理员把应用程序整合到一个更大、更可扩展的系统上。有了 Solaris Resource Manager,要实现规模效益的目标就更加容易了。

举例来讲,单一的 Sun 服务器可以为拥有多种需求的客户提供应用程序、文件和打印服务器功能、信件/邮件服务、万维网服务,以及任务关键型的数据库应用程序。鉴于 Sun EnterpriseTM 服务器可以在 1 到 64 个处理器之间进行伸缩,一个服务器可以配置成为多个部门所共享,或者为整个企业所使用。其它的服务器整合成果还有,将开发、原形设计以及生产环境合并在单一的大型机器上,诸如 Sun Enterprise 10000 或者 Sun Enterprise 6500,而不是寄存在三个彼此分离的服务器上。整合方案另外还有,将数据库和应用程序服务器结合成为单一的机器,或者多个数据仓库。Solaris Resource Manager 与应用程序类型或配置无关,从而有助于确保根据所制定的策略,将系统的资源分配给所有的用户、应用程序和组。关键性的应用程序受到保护,保证可以得到其所需要的可用系统资源份额。

万维网主机服务

在过去,ISP 不得不为每个客户分配专门的计算机,这样做成本很大且非常复杂。有了 Solaris Resource Manager,ISP 就能在一台计算机上驻留很多万维网服务器(可能上千个)。Solaris Resource Manager 可使管理员控制与每个万维网网站相关的资源耗用,并保护每个网站不会被潜在地过量使用。它还能够阻止有缺陷的公用网关接口 (CGI) 脚本消耗 CPU 资源,也可防止某个用户应用程序泄漏所有可用的虚拟内存。

批处理

Solaris Resource Manager 可被用于防止批工作负载影响正在进行的商业活动及其它同时运行的批任务。

数目众多或变化的用户人群

Solaris Resource Manager 有助于对拥有大量不同用户人群(如教育机构)的任何系统的资源进行管理。(实际上,Solaris Resource Manager 根植于悉尼大学和新南威尔士大学开发的早期 CPU 资源调度程序中。)对于多种工作负载的混合环境,Solaris Resource Manager 软件可配置成针对特定用户。例如,在大型股票代理公司中,股票交易人常常需要间歇地快速访问系统并进行查询或计算。但是,其他系统用户则需要处理更连贯的工作负载。如果把比例更大的处理能力都分配给交易人,则 Solaris Resource Manager 就能确保他们获得需要的响应速度。

主要功能

Solaris Resource Manager 可提供对系统中各种重要资源(如处理器时间、虚拟内存、进程次数、登录控制、和连接时间)进行管理的功能。Solaris Resource Manager 的管理模型可允许在一个组织结构中对管理权进行授权,使数据中心的员工不必参与组内的管理事务,从而增加了灵活性。此外,Solaris Resource Manager 还能提供采集能用于容量规划或前溯目的的资源使用数据的机制。

处理资源

操作系统的基本任务之一就是判断哪些进程能利用系统资源。缺省的 Solaris Timeshare (TS) 调度程序尝试把系统资源的基本相同的份额分配给每个进程。对系统资源利用的限制也适用于没有物理内存资源的进程(这些进程是不允许运行的),以及有尚未完成的 I/O 请求的进程(这些进程被阻断)。

这种方法是多数现代操作系统的基础;只要所有人都能平等接入,那么就是工作正常,这对于企业是合适的政策。但是,要实施不同的政策还需要更成熟的机制。例如,一个制造部门可能配备了一套大型系统,但因为季节性需求的波动而较少使用。同时,制造部门几乎总是需要更多的计算周期。虽然不能充分利用大型计算机的资源是一种浪费,但是与工程设计部门共享制造系统长久一来一直是一个难题。对于简单的调度政策来说,根本就没有办法向操作系统表达制造部门的用户比工程设计部门的用户更重要这样一个原则。如果制造部门正在运行一个耗用 75% 系统资源的关键任务,则如果所有其它任务只需要使用 25% 或少系统资源,那么这项任务就能正常进行。但是,如果出现某个需要耗用 50% 系统资源的工程设计任务,则上述关键制造任务也许就不能获得保持任务正常进行的系统资源,因为系统会在平等的基础上协调这两项任务。

现在来假设管理员确定利用计算机 80% 的能力就能确保该制造任务正常进行。使用 Solaris Resource Manager,系统管理员就能规定制造部门的用户在需要时可以使用系统处理能力的 85%,而调度程序会把剩余的系统能力分配给任何其他用户。另一极端但同样有效的配置就是规定制造部门的用户在必要时最多可使用系统资源的 100%,因而可以在制造部门真正需要使用整个系统时有效地防止任何其它组的进程的运行。

分配资源

Solaris Resource Manager 内置一个替代标准时间共享调度程序的 CPU 调度类。这个模块被称为 SHR 调度程序,可实施所谓的公平份额调度程序。这个术语有些用词不当,因为应该由系统管理员来规定公平的含义。在上述例子中,"公平"的含义是制造部门可利用 100% 的系统资源。SHR 调度程序负责根据管理简况中规定的计划分配资源。

限制资源

Solaris Resource Manager 维护一个关于资源利用率和相关限制的数据库。

SHR 调度程序考虑了针对资源保证的管理规定。它可以对可更新(如 CPU 时间)或固定(如进程数目)的资源进行管理。

其它 Solaris Resource Manager 模块可对不同资源的耗用实施限制。例如,一个可插接鉴别模块 (Pluggable Authentication Module - PAM) 可对连接时间和用户登录进行管理。PAM 模块可在每次有一个用户尝试登录时查阅 Solaris Resource Manager 数据库。RT 调度类实施一种非常不同的(且非常重要的)调度政策,可确保特定工作负载或进程能立刻接入处理器。如果超过了其中任何一个界限,登录就会被拒绝。

与其它 Solaris 资源控制功能的关系

Solaris 操作环境包括若干能在特定类型资源上提供控制功能的其它功能。某些功能,如实时调度、nice(1)、配额和处理器集都是基本 Solaris 系统的一部分。

Solaris 带宽管理器是一种与别的软件一起打包的软件程序包,动态系统域是 Sun Enterprise 10000 系统平台的特性,而动态重新配置则是 Sun Enterprise 系统平台的特性。

所有这些组件都提供多种类型的资源管理,但每个组件都多少与 Solaris Resource Manager 功能有所不同。

Solaris Resource Manager 与类似产品的差别

Solaris Resource Manager 产品与系统中可能存在的很多其它软件组件相关,但它并非取代任何这些软件。

Sun Cluster 3.0 Update 环境上的 Solaris Resource Manager

Sun Cluster 软件环境可对某个服务器群集上的数据服务和并行数据库访问提供高可用性 (HA) 支持。Sun Cluster 可通过备用硬件、硬件和软件故障检测、应用程序故障恢复、和数据服务的自动重新启动等防止服务的丢失。Sun Cluster 软件包括一个群集框架和对高可用性代理集的支持功能。Sun Cluster 还包括一个可被用于创建高可用性应用程序并把该应用程序集成到在 Sun Cluster 框架上的应用程序编程接口 (API)。

Sun Cluster 环境可支持 Solaris Resource Manager 中所有控制系统资源的功能。您可以在任意有效的 Sun Cluster 拓扑上,在两节点或多于两节点的群集上安装 Solaris Resource Manager。有关配置信息,请参阅 在 Sun Cluster 3.0 Update 环境中配置 Solaris Resource Manager

有关在 Sun Cluster 3.0 Update 环境中安装 Solaris Resource Manager 的提示,请参阅《Solaris Resource Manager 1.3 系统安装指南》