Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1299595
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-09 18:48:06


第3 章• 管理项目和任务41
0 35 113M 129M 32% 0:10.46 0.2% system
Total: 87 processes, 205 lwps, load averages: 0.05, 0.02, 0.02
要显示系统上当前运行的进程和任务的各种统计信息,请使用带有-T 选项的prstat 命令:
% prstat -T
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
23023 root 26M 20M sleep 59 0 0:03:18 0.6% Xsun/1
23476 jtd 51M 45M sleep 49 0 0:04:31 0.5% adeptedit/1
23432 jtd 6928K 5064K sleep 59 0 0:00:00 0.1% dtterm/1
28959 jtd 26M 18M sleep 49 0 0:00:18 0.0% .netscape.bin/1
23116 jtd 9232K 8104K sleep 59 0 0:00:27 0.0% dtwm/5
29010 jtd 5144K 4664K cpu0 59 0 0:00:00 0.0% prstat/1
200 root 3096K 1024K sleep 59 0 0:00:00 0.0% lpsched/1
161 root 2120K 1600K sleep 59 0 0:00:00 0.0% lockd/2
170 root 5888K 4248K sleep 59 0 0:03:10 0.0% automountd/3
132 root 2120K 1408K sleep 59 0 0:00:00 0.0% ypbind/1
162 daemon 2504K 1936K sleep 59 0 0:00:00 0.0% statd/2
146 root 2560K 2008K sleep 59 0 0:00:00 0.0% inetd/1
122 root 2336K 1264K sleep 59 0 0:00:00 0.0% keyserv/2
119 root 2336K 1496K sleep 59 0 0:00:02 0.0% rpcbind/1
104 root 1664K 672K sleep 59 0 0:00:03 0.0% in.rdisc/1
TASKID NPROC SIZE RSS MEMORY TIME CPU PROJECT
222 30 229M 161M 44% 0:05:54 0.6% group.staff
223 1 26M 20M 5.3% 0:03:18 0.6% group.staff
命令和命令选项示例
42 系统管理指南:Solaris Containers-资源管理和Solaris Zones • 2006 年7 月
12 1 61M 33M 8.9% 0:00:31 0.0% group.staff
1 33 85M 53M 14% 0:03:33 0.0% system
Total: 65 processes, 154 lwps, load averages: 0.04, 0.05, 0.06
注– -J 和-T 选项不能一起使用。
将cron 和su 用于项目与任务
cron 命令
cron 命令将发出settaskid,以确保每个cron、at 和batch 作业都是在单独的任务中执行,
并对提交用户使用了适当的缺省项目。at 和batch 命令也会捕获当前项目ID,以确保在运
行at 作业时恢复项目ID。
su 命令
su 命令通过创建新任务加入目标用户的缺省项目,作为模拟登录的一部分。
要使用su 命令切换用户的缺省项目,请键入以下内容:
# su user
管理项目
 如何定义项目和查看当前项目
此示例显示如何使用projadd 命令添加项目条目,以及如何使用projmod 命令修改此条目。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”。
使用projects -l 查看系统上缺省的/etc/project 文件。
# projects -l
system:0::::
1
2
管理项目
第3 章• 管理项目和任务43
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::system
projid : 0
comment: ""
users : (none)
groups : (none)
attribs:
user.root
projid : 1
comment: ""
users : (none)
groups : (none)
attribs:
noproject
projid : 2
comment: ""
users : (none)
groups : (none)
attribs:
default
projid : 3
comment: ""
管理项目
44 系统管理指南:Solaris Containers-资源管理和Solaris Zones • 2006 年7 月
users : (none)
groups : (none)
attribs:
group.staff
projid : 10
comment: ""
users : (none)
groups : (none)
attribs:
添加名为booksite 的项目。将该项目指定给名为mark 的用户,同时指定项目ID 号4113。
# projadd -U mark -p 4113 booksite
再次查看/etc/project 文件。
# projects -l
system
projid : 0
comment: ""
users : (none)
groups : (none)
attribs:
user.root
projid : 1
comment: ""
users : (none)
groups : (none)
attribs:
3
4
管理项目
第3 章• 管理项目和任务45
noproject
projid : 2
comment: ""
users : (none)
groups : (none)
attribs:
default
projid : 3
comment: ""
users : (none)
groups : (none)
attribs:
group.staff
projid : 10
comment: ""
users : (none)
groups : (none)
attribs:
booksite
projid : 4113
comment: ""
users : mark
groups : (none)
attribs:
管理项目
46 系统管理指南:Solaris Containers-资源管理和Solaris Zones • 2006 年7 月
在注释字段中添加描述项目的注释。
# projmod -c ‘Book Auction Project’ booksite
查看/etc/project 文件中的更改。
# projects -l
system
projid : 0
comment: ""
users : (none)
groups : (none)
attribs:
user.root
projid : 1
comment: ""
users : (none)
groups : (none)
attribs:
noproject
projid : 2
comment: ""
users : (none)
groups : (none)
attribs:
default
projid : 3
comment: ""
5
6
管理项目
第3 章• 管理项目和任务47
users : (none)
groups : (none)
attribs:
group.staff
projid : 10
comment: ""
users : (none)
groups : (none)
attribs:
booksite
projid : 4113
comment: "Book Auction Project"
users : mark
groups : (none)
attribs:
要将项目、任务和进程绑定到池,请参见第172 页中的“设置池属性并绑定到池”。
 如何从/etc/project 文件中删除项目
此示例显示如何使用projdel 命令删除项目。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”。
使用projdel 命令删除booksite 项目。
# projdel booksite
另请参见
1
2
管理项目
48 系统管理指南:Solaris Containers-资源管理和Solaris Zones • 2006 年7 月
显示/etc/project 文件。
# projects -l
system
projid : 0
comment: ""
users : (none)
groups : (none)
attribs:
user.root
projid : 1
comment: ""
users : (none)
groups : (none)
attribs:
noproject
projid : 2
comment: ""
users : (none)
groups : (none)
attribs:
default
projid : 3
comment: ""
users : (none)
groups : (none)
3
管理项目
第3 章• 管理项目和任务49
attribs:
group.staff
projid : 10
comment: ""
users : (none)
groups : (none)
attribs:
以用户mark 的身份登录并键入projects 来查看指定给此用户的项目。
# su - mark
# projects
default
如何验证/etc/project 文件的内容
如果没有给出编辑选项,projmod 命令便会验证project 文件的内容。
要验证NIS 映射,请以超级用户的身份登录,并键入以下内容:
# ypcat project | projmod -f —
注– ypcat project | projmod -f — 命令尚未执行。
要检查/etc/project 文件的语法,请键入以下内容:
# projmod -n
如何获取项目成员身份信息
使用带有-p 标志的id 命令显示发出调用的进程的当前项目成员身份。
$ id -p
uid=100(mark) gid=1(other) projid=3(default)
4
管理项目
50 系统管理指南:Solaris Containers-资源管理和Solaris Zones • 2006 年7 月
 如何创建新任务
以目标项目booksite 的成员身份登录。
使用带有-v(详细)选项的newtask 命令在booksite 项目中创建新任务以获取系统任务ID。
machine% newtask -v -p booksite
16
通过执行newtask,可以在指定项目中创建新任务并将用户的缺省shell 置于此任务中。
查看发出调用的进程的当前项目成员身份。
machine% id -p
uid=100(mark) gid=1(other) projid=4113(booksite)
现在该进程成为新项目的成员。
 如何将正在运行的进程移至新任务
此示例显示如何将正在运行的进程与不同的任务和新项目进行关联。要执行此操作,您必
须是超级用户,或者是进程属主,或者是新项目的成员。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”。
注– 如果您是进程属主或新项目成员,则可以跳过此步骤。
获取book_catalog 进程的ID。
# pgrep book_catalog
8100
将进程8100 与booksite 项目中的新任务ID 进行关联。
# newtask -v -p booksite -c 8100
17
-c 选项指定newtask 作用于现有的命名进程。
1
2
3
1
2
3
管理项目
第3 章• 管理项目和任务51
确认任务到进程ID 的映射。
# pgrep -T 17
8100
编辑和验证项目属性
您可以使用projadd 和projmod 项目数据库管理命令来编辑项目属性。
-K 选项指定属性替换列表。属性由分号(;) 进行分隔。如果将-K 选项和-a 选项一起使用,
则会添加属性或属性值。如果将-K 选项和-r 选项一起使用,则会删除属性或属性值。如果
将-K 选项和-s 选项一起使用,则会替换属性或属性值。
 如何将属性和属性值添加到项目
可以使用带有-a 和-K 选项的projmod 命令将值添加到项目属性中。如果属性不存在,则会
创建一个。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”。
在项目myproject 中添加无属性值的资源控制属性task.max-lwps。加入项目的任务只有系统
属性值。
# projmod -a -K task.max-lwps myproject
然后可以向myproject 项目中的task.max-lwps 添加值。此值包含权限级别、阈值以及与达到
阈值关联的操作。
# projmod -a -K "task.max-lwps=(priv,100,deny)" myproject
由于资源控制属性可以具有多个值,因此可以使用同一个选项将其他值添加到现有的值列
表中。
# projmod -a -K "task.max-lwps=(priv,1000,signal=KILL)" myproject
用逗号分隔多个值。现在task.max-lwps 条目应为:
task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)
4
1
2
3
4
编辑和验证项目属性
52 系统管理指南:Solaris Containers-资源管理和Solaris Zones • 2006 年7 月
 如何从项目中删除属性值
此过程假设具有以下值:
task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”。
要从项目myproject 的资源控制属性task.max-lwps 中删除属性值,请使用带有-r 和-K 选项
的projmod 命令。
# projmod -r -K "task.max-lwps=(priv,100,deny)" myproject
如果task.max-lwps 具有多个值,例如:
task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)
则会删除第一个匹配的值。结果将为:
task.max-lwps=(priv,1000,signal=KILL)
 如何从项目中删除资源控制属性
要删除项目myproject 中的资源控制属性task.max-lwps,请使用带有-r 和-K 选项的
projmod 命令。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”。
从项目myproject 中删除属性task.max-lwps 及其所有值:
# projmod -r -K task.max-lwps myproject
 如何替换项目的属性和属性值
要替换项目myproject 中属性task.max-lwps 的值,请使用带有-s 和-K 选项的projmod 命
令。如果属性不存在,则会创建一个。
1
2
1
2
编辑和验证项目属性
第3 章• 管理项目和任务53
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”。
使用所示的新值替换当前的task.max-lwps 值:
# projmod -s -K "task.max-lwps=(priv,100,none),(priv,120,deny)" myproject
结果为:
task.max-lwps=(priv,100,none),(priv,120,deny)
 如何删除资源控制属性的现有值
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”。
要从项目myproject 中删除task.max-lwps 的当前值,请键入:
# projmod -s -K task.max-lwps myproject
1
2
1
2
编辑和验证项目属性
54 系统管理指南:Solaris Containers-资源管理和Solaris Zones • 2006 年7 月
扩展记帐(概述)
通过使用第2 章中介绍的项目和任务功能对工作负荷进行标记和分隔,可以监视每个工作
负荷的资源占用情况。您可以使用扩展记帐子系统捕获一组有关进程和任务的详细资源占
用情况的统计信息。
本章包含以下主题:
 第55 页中的“扩展记帐介绍”
 第56 页中的“扩展记帐的工作原理”
 第57 页中的“扩展记帐配置”
 第58 页中的“用于扩展记帐的命令”
 第58 页中的“libexacct 的Perl 接口”
要开始使用扩展记帐,请参见第62 页中的“如何激活进程、任务和流的扩展记帐”。
Solaris 10 在扩展记帐方面的新增功能
现在可以生成进程记帐的mstate 数据。请参见第63 页中的“如何查看可用的记帐资源
”。
有关Solaris 10 新增功能的完整列表以及Solaris 发行版的描述,请参见《Solaris 10 What’s
New》。
扩展记帐介绍
扩展记帐子系统记录执行工作的项目的资源使用情况。您还可以将扩展记帐与《System
Administration Guide: IP Services》中的第36 章,“Using Flow Accounting and Statistics
Gathering (Tasks)”中所介绍的Internet 协议服务质量(Internet Protocol Quality of Service,
IPQoS) 流记帐模块结合使用,以捕获系统上的网络流信息。
在应用资源管理机制之前,必须首先能够识别各种工作负荷对系统的资源占用需求。Solaris
操作系统中的扩展记帐功能提供了一种可以按任务、进程或IPQoS flowacct 模块提供的选
择器来记录系统和网络资源的占用情况的灵活方式。有关更多信息,请参见ipqos(7IPP)。
4第4 章
55
与可实时度量系统使用情况的联机监视工具不同,通过扩展记帐,可检查历史使用情况。
然后,可以对将来工作负荷的容量要求进行评估。
如果提供了扩展记帐数据,则可以开发或购买用于分摊资源费用、监视工作负荷或规划容
量的软件。
扩展记帐的工作原理
Solaris 操作系统中的扩展记帐功能使用一种版本化的可扩展文件格式来包含记帐数据。通
过使用所包含的库libexacct(请参见libexacct(3LIB))中提供的API,可以访问或创建使
用此数据格式的文件。然后,可以在启用了扩展记帐的任何平台上分析这些文件,并且可
以使用其数据进行容量规划和费用分摊。
如果扩展记帐处于活动状态,则会收集可由libexacct API 检查的统计信息。使用
libexacct 可以向前或向后检查exacct 文件。API 支持由libexacct 生成的第三方文件以及
由内核创建的文件。使用libexacct 的实用摘录与报告语言(Practical Extraction and Report
Language, Perl) 接口,可以开发自定义报告脚本和提取脚本。请参见第58 页中的
“libexacct 的Perl 接口”。
如果启用了扩展记帐,则任务会跟踪其成员进程的总体资源使用情况。任务完成时会编写
任务记帐记录,还会编写有关正在运行的进程和任务的临时记录。有关任务的更多信息,
请参见第2 章。
图4–1激活扩展记帐情况的任务跟踪
可扩展的格式
扩展记帐的工作原理
56 系统管理指南:Solaris Containers-资源管理和Solaris Zones • 2006 年7 月
扩展记帐格式实际上比SunOSTM 传统系统记帐软件格式(请参见《System Administration
Guide: Advanced Administration》中的“What is System Accounting?”)更具可扩展性。扩展记
帐允许在不同发行版的系统中添加和删除记帐度量标准,即使在系统操作过程中也是如
此。
注– 系统上的扩展记帐软件和传统系统记帐软件可以同时处于活动状态。
exacct 记录和格式
用于创建exacct 记录的例程具有两个用途。
 允许创建第三方exacct 文件。
 允许使用putacct 系统调用(请参见getacct(2))创建要在内核记帐文件中嵌入的标记
记录。
注– putacct 系统调用也可通过Perl 接口使用。
此格式允许捕获不同形式的记帐记录,而不要求每次更改都是显式的版本更改。使用记帐
数据且编写准确的应用程序必须忽略它们不了解的记录。
libexacct 库可转换和生成格式为exacct 的文件。此库是exacct 格式文件支持的唯一接
口。
注– getacct、putacct 和wracct 系统调用不适用于流。配置IPQoS 流记帐之后,内核便会创
建流记录并将其写入文件。
在安装了区域的Solaris 系统上使用扩展记帐
当扩展记帐子系统在全局区域(global zone) 上运行时,它会收集并报告整个系统(包括非全
局区域)的信息。全局管理员还可以确定每个区域的资源占用情况。有关更多信息,请参
见第305 页中的“安装了区域的Solaris 系统上的扩展记帐”。
扩展记帐配置
/etc/acctadm.conf 文件包含当前扩展记帐配置。此文件通过acctadm 接口而不是用户进行
编辑。
目录/var/adm/exacct 是放置扩展记帐数据的标准位置。您可以使用acctadm 命令为进程和
任务记帐数据文件指定其他位置。有关更多信息,请参见acctadm(1M)。
 
 
以上文章转自于 : http://developers.sun.com.cn/
阅读(422) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~