进程提示虚拟内存不足

提示虚拟内存不足  时间:2021-01-19  阅读:()

文件号码E53838-022014年9月在OracleSolaris11.
2中管理系统信息、进程和性能版权所有2014,Oracle和/或其附属公司.
保留所有权利.
本软件和相关文档是根据许可证协议提供的,该许可证协议中规定了关于使用和公开本软件和相关文档的各种限制,并受知识产权法的保护.
除非在许可证协议中明确许可或适用法律明确授权,否则不得以任何形式、任何方式使用、拷贝、复制、翻译、广播、修改、授权、传播、分发、展示、执行、发布或显示本软件和相关文档的任何部分.
除非法律要求实现互操作,否则严禁对本软件进行逆向工程设计、反汇编或反编译.

此文档所含信息可能随时被修改,恕不另行通知,我们不保证该信息没有错误.
如果贵方发现任何问题,请书面通知我们.

如果将本软件或相关文档交付给美国政府,或者交付给以美国政府名义获得许可证的任何机构,必须符合以下规定:U.
S.
GOVERNMENTENDUSERS:Oracleprograms,includinganyoperatingsystem,integratedsoftware,anyprogramsinstalledonthehardware,and/ordocumentation,deliveredtoU.
S.
Governmentendusersare"commercialcomputersoftware"pursuanttotheapplicableFederalAcquisitionRegulationandagency-specificsupplementalregulations.
Assuch,use,duplication,disclosure,modification,andadaptationoftheprograms,includinganyoperatingsystem,integratedsoftware,anyprogramsinstalledonthehardware,and/ordocumentation,shallbesubjecttolicensetermsandlicenserestrictionsapplicabletotheprograms.
NootherrightsaregrantedtotheU.
S.
Government.
本软件或硬件是为了在各种信息管理应用领域内的一般使用而开发的.
它不应被应用于任何存在危险或潜在危险的应用领域,也不是为此而开发的,其中包括可能会产生人身伤害的应用领域.
如果在危险应用领域内使用本软件或硬件,贵方应负责采取所有适当的防范措施,包括备份、冗余和其它确保安全使用本软件或硬件的措施.
对于因在危险应用领域内使用本软件或硬件所造成的一切损失或损害,OracleCorporation及其附属公司概不负责.
Oracle和Java是Oracle和/或其附属公司的注册商标.
其他名称可能是各自所有者的商标.
Intel和IntelXeon是IntelCorporation的商标或注册商标.
所有SPARC商标均是SPARCInternational,Inc的商标或注册商标,并应按照许可证的规定使用.
AMD、Opteron、AMD徽标以及AMDOpteron徽标是AdvancedMicroDevices的商标或注册商标.
UNIX是TheOpenGroup的注册商标.
本软件或硬件以及文档可能提供了访问第三方内容、产品和服务的方式或有关这些内容、产品和服务的信息.
对于第三方内容、产品和服务,OracleCorporation及其附属公司明确表示不承担任何种类的担保,亦不对其承担任何责任.
对于因访问或使用第三方内容、产品或服务所造成的任何损失、成本或损害,OracleCorporation及其附属公司概不负责.
3目录使用本文档71管理系统信息9显示系统信息9用于显示系统信息的命令9识别有关芯片多线程功能的信息18更改系统信息20更改系统信息任务列表20如何手动设置系统的日期和时间20如何设置每日消息21如何更改系统标识212管理系统进程23无需管理的系统进程23管理系统进程23管理系统进程任务列表24用于管理系统进程的命令24显示和管理进程类信息32显示进程类信息32管理进程类信息任务列表34更改进程的调度优先级(priocntl)35如何指定进程优先级(priocntl)35如何更改分时进程的调度参数(priocntl)36如何更改进程的类(priocntl)37更改分时进程的优先级(nice)37更改进程优先级(nice)38系统进程问题的故障排除393监视系统性能41在何处查找有关监视系统性能的信息41目录4在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月使用OracleEnterpriseManagerOpsCenter管理性能41关于影响系统性能的系统资源42关于进程和系统性能42关于监视系统性能44监视工具44显示系统性能信息45显示虚拟内存统计信息45显示虚拟内存统计信息(vmstat)46显示系统事件信息(vmstat-s)46显示交换统计信息(vmstat-S)47显示每台设备的中断次数(vmstat-i)47显示磁盘使用率信息48显示磁盘空间统计信息(df)50监视系统活动51监视系统活动(sar)51自动收集系统活动数据(sar)674调度系统任务71自动执行系统任务的方法71使用crontab调度重复性作业72使用at调度单个作业72调度系统任务73创建和编辑crontab文件任务列表73调度重复性系统任务(cron)73创建和编辑crontab文件75显示和验证crontab文件77删除crontab文件78控制对crontab命令的访问79使用at命令来调度任务82使用at命令82调度单个系统任务(at)825管理系统控制台、终端设备和电源服务89管理系统控制台和本地连接的终端设备89管理系统控制台和本地连接的终端设备的SMF服务89管理系统电源服务91如何在维护模式下从电源服务中恢复94目录5索引956在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月使用本文档7使用本文档概述-介绍了管理系统信息、进程和监视性能的任务.
目标读者-使用OracleSolaris11发行版的系统管理员必备知识-UNIX系统管理经验产品文档库有关本产品的最新信息和已知问题均包含在文档库中,网址为:http://www.
oracle.
com/pls/topic/lookupctx=E56344.
获得Oracle支持.
Oracle客户可通过MyOracleSupport获得电子支持.
有关信息,请访问http://www.
oracle.
com/pls/topic/lookupctx=acc&id=info;如果您听力受损,请访问http://www.
oracle.
com/pls/topic/lookupctx=acc&id=trs.
反馈可以在http://www.
oracle.
com/goto/docfeedback上提供有本文档的反馈.
8在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月第1章管理系统信息91第1章管理系统信息本章介绍显示和更改基本系统信息所需执行的任务.
有关可用于灵活地分配、监视和控制系统资源的资源管理的信息,请参见《在OracleSolaris11.
2中进行资源管理》中的第1章"资源管理介绍".
以下列出本章所介绍的信息:"显示系统信息"[9]"更改系统信息"[20]显示系统信息本节介绍可用来显示常规系统信息的命令.
用于显示系统信息的命令表1-1用于显示系统信息的命令命令显示的系统信息手册页date日期和时间date(1)hostid主机ID号hostid(1)isainfo正在运行的系统中本机应用程序所支持的位数,该位数可以作为标记传递给脚本isainfo(1)isalist处理器类型isalist(1)prtconf系统配置信息,已安装的内存、设备属性和产品名称prtconf(1M)prtdiag系统配置和诊断信息,包括任何发生故障的现场可更换单元(FieldReplaceableUnit,FRU)prtdiag(1M)psrinfo处理器信息psrinfo(1M)uname操作系统名称、发行版、版本、节点名称、硬件名称和处理器类型uname(1)显示系统信息10在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月显示系统的发行版信息显示/etc/release文件的内容,以确定发行版的版本.
$cat/etc/release显示日期和时间要根据系统时钟显示当前的日期和时间,请使用date命令.
以下示例显示date命令的样例输出.
$dateFriJun116:07:44MDT2012$显示系统的主机ID号要以数字(十六进制)格式显示主机ID号,请使用hostid命令.
以下示例显示hostid命令的样例输出.
$hostid80a5d34c显示系统的体系结构类型使用isainfo命令显示如何为当前操作系统支持的应用程序显示本机指令集的体系结构类型和名称.
以下示例输出来自基于x86的系统:$isainfoamd64i386以下示例输出来自基于SPARC的系统:$isainfosparcv9sparcisainfo-v命令显示32位和64位应用程序支持.
例如,以下示例输出来自基于SPARC的系统:$isainfo-v64-bitsparcv9applications显示系统信息第1章管理系统信息11asi_blk_init32-bitsparcapplicationsasi_blk_initv8plusdiv32mul32#以下示例显示isainfo-v命令在基于x86的系统上的输出:$isainfo-v64-bitamd64applicationssse4.
1ssse3ahfcx16sse3sse2ssefxsrmmxcmovamd_sysccx8tscfpu32-biti386applicationssse4.
1ssse3ahfcx16sse3sse2ssefxsrmmxcmovsepcx8tscfpu请参见isainfo(1)手册页.
有关更多信息,请参见isainfo(1)手册页.
显示系统的处理器类型使用isalist命令可以显示有关系统的处理器类型的信息.
Thefollowingsampleoutputisfromanx86basedsystem:$isalistpentium_pro+mmxpentium_propentium+mmxpentiumi486i386i86以下示例输出来自基于SPARC的系统:$isalistsparcv9sparcv8plussparcv8sparcv8-fsmuldsparcv7sparcsparcv9+vissparcv9+vis2\sparcv8plus+vissparcv8plus+vis2请参见isalist(1)手册页.
显示系统的产品名称要显示系统的产品名称,请将prtconf命令与-b选项结合使用:$prtconf-b有关更多信息,请参见prtconf(1M)手册页.
该示例显示来自基于SPARC的系统上的prtconf-b命令示例输出.
$prtconf-bname:ORCL,SPARC-T4-2banner-name:SPARCT4-2compatible:'sun4v'$显示系统信息12在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月该示例显示来自基于SPARC的系统上的prtconf-vb命令示例输出.
添加的-v选项指定详细输出.
$prtconf-vbname:ORCL,SPARC-T3-4banner-name:SPARCT3-4compatible:'sun4v'idprom:01840014.
4fa02d28.
00000000.
a02d28de.
00000000.
00000000.
00000000.
00000000openprommodel:SUNW,4.
33.
0.
bopenpromversion:'OBP4.
33.
0.
b2011/05/1616:26'显示系统的已安装内存要显示系统中已安装的内存量,请结合使用prtconf命令和grepMemory命令.
以下示例显示示例输出,其中,grepMemory命令选择prtconf命令的输出,以便只显示内存信息.
$prtconf|grepMemoryMemorysize:523776Megabytes显示设备的缺省和定制属性值要显示设备的缺省属性值和定制属性值,请将prtconf命令和-u选项结合使用.
$prtconf-uprtconf-u命令的输出显示系统上所有驱动程序的缺省属性和定制属性.
有关此选项的更多信息,请参见prtconf(1M)手册页.
例1-1SPARC:显示缺省和定制设备属性此示例显示了bge.
conf文件的缺省属性和定制属性.
请注意,供应商提供的配置文件位于/kernel和/platform目录,而修改后的相应驱动程序配置文件则位于/etc/driver/drv目录.
$prtconf-uSystemConfiguration:OracleCorporationsun4vMemorysize:523776MegabytesSystemPeripherals(SoftwareNodes):ORCL,SPARC-T3-4scsi_vhci,instance#0disk,instance#4disk,instance#5disk,instance#6disk,instance#8显示系统信息第1章管理系统信息13disk,instance#9disk,instance#10disk,instance#11disk,instance#12packages(drivernotattached)SUNW,builtin-drivers(drivernotattached)deblocker(drivernotattached)disk-label(drivernotattached)terminal-emulator(drivernotattached)dropins(drivernotattached)SUNW,asr(drivernotattached)kbd-translator(drivernotattached)obp-tftp(drivernotattached)zfs-file-system(drivernotattached)hsfs-file-system(drivernotattached)chosen(drivernotattached)openprom(drivernotattached)client-services(drivernotattached)options,instance#0aliases(drivernotattached)memory(drivernotattached)virtual-memory(drivernotattached)iscsi-hba(drivernotattached)disk,instance#0(drivernotattached)virtual-devices,instance#0flashprom(drivernotattached)tpm,instance#0(drivernotattached)n2cp,instance#0ncp,instance#0random-number-generator,instance#0console,instance#0channel-devices,instance#0virtual-channel,instance#0virtual-channel,instance#1virtual-channel-client,instance#2virtual-channel-client,instance#3virtual-domain-service,instance#0cpu(drivernotattached)cpu(drivernotattached)cpu(drivernotattached)cpu(drivernotattached)cpu(drivernotattached)cpu(drivernotattached)cpu(drivernotattached)例1-2x86:显示缺省和定制设备属性此示例显示了bge.
conf文件的缺省属性和定制属性.
请注意,供应商提供的配置文件位于/kernel和/platform目录,而修改后的相应驱动程序配置文件则位于/etc/driver/drv目录.
$prtconf-uSystemConfiguration:OracleCorporationi86pc显示系统信息14在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月Memorysize:8192MegabytesSystemPeripherals(SoftwareNodes):i86pcscsi_vhci,instance#0pci,instance#0pci10de,5e(drivernotattached)isa,instance#0asy,instance#0motherboard(drivernotattached)pit_beep,instance#0pci10de,cb84(drivernotattached)pci108e,cb84,instance#0device,instance#0keyboard,instance#0mouse,instance#1pci108e,cb84,instance#0pci-ide,instance#0ide,instance#0sd,instance#0ide(drivernotattached)pci10de,5c,instance#0display,instance#0pci10de,cb84,instance#0pci10de,5d(drivernotattached)pci10de,5d(drivernotattached)pci10de,5d(drivernotattached)pci10de,5d(drivernotattached)pci1022,1100,instance#0pci1022,1101,instance#1pci1022,1102,instance#2pci1022,1103(drivernotattached)pci1022,1100,instance#3pci1022,1101,instance#4pci1022,1102,instance#5pci1022,1103(drivernotattached)pci,instance#1pci10de,5e(drivernotattached)pci10de,cb84(drivernotattached)pci10de,cb84,instance#1pci10de,5d(drivernotattached)pci10de,5d(drivernotattached)pci10de,5d(drivernotattached)pci10de,5d(drivernotattached)pci1022,7458,instance#1pci1022,7459(drivernotattached)pci1022,7458,instance#2pci8086,1011,instance#0pci8086,1011,instance#1pci1000,3060,instance#0sd,instance#1sd,instance#2pci1022,7459(drivernotattached)ioapics(drivernotattached)显示系统信息第1章管理系统信息15ioapic,instance#0(drivernotattached)ioapic,instance#1(drivernotattached)fw,instance#0cpu(drivernotattached)cpu(drivernotattached)cpu(drivernotattached)cpu(drivernotattached)sb,instance#1used-resources(drivernotattached)iscsi,instance#0fcoe,instance#0pseudo,instance#0options,instance#0xsvc,instance#0vga_arbiter,instance#0例1-3x86:显示系统配置信息以下示例显示在基于x86的系统上如何使用带有-v选项的prtconf命令来确定与系统连接的磁盘、磁带和DVD设备.
此命令的输出在不存在设备的设备实例旁显示了"drivernotattached"消息.
$prtconf-v|moreSystemConfiguration:OracleCorporationi86pcMemorysize:8192MegabytesSystemPeripherals(SoftwareNodes):i86pcSystemproperties:name='#size-cells'type=intitems=1value=00000002name='#address-cells'type=intitems=1value=00000003name='relative-addressing'type=intitems=1value=00000001name='MMU_PAGEOFFSET'type=intitems=1value=00000fffname='MMU_PAGESIZE'type=intitems=1value=00001000name='PAGESIZE'type=intitems=1value=00001000name='acpi-status'type=intitems=1value=00000013name='biosdev-0x81'type=byteitems=588value=01.
38.
74.
0e.
08.
1e.
db.
e4.
fe.
00.
d0.
ed.
fe.
f8.
6b.
04.
08.
d3.
db.
e4.
fe.
.
.
有关更多信息,请参见driver(4)、driver.
conf(4)和prtconf(1M)手册页.
有关如何创建通过管理行为提供的配置文件的说明,请参见《在OracleSolaris11.
2中管理设备》中的第1章"在OracleSolaris中管理设备".
显示系统信息16在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月显示系统诊断信息使用prtdiag命令显示系统的配置和诊断信息.
$prtdiag[-v][-l]-v详细模式.
-l记录输出.
如果系统中存在故障或错误,则仅将此信息输出到syslogd(1M).
例1-4SPARC:显示系统诊断信息以下示例显示prtdiag-v命令在基于SPARC的系统上的示例输出.
为简短起见,示例做了截断.
$prtdiag-v|moreSystemConfiguration:OracleCorporationsun4vSunFireT200Memorysize:16256MegabytesVirtualCPUsCPUIDFrequencyImplementationStatus01200MHzSUNW,UltraSPARC-T1on-line11200MHzSUNW,UltraSPARC-T1on-line21200MHzSUNW,UltraSPARC-T1on-line31200MHzSUNW,UltraSPARC-T1on-line41200MHzSUNW,UltraSPARC-T1on-line51200MHzSUNW,UltraSPARC-T1on-line61200MHzSUNW,UltraSPARC-T1on-line.
.
.
PhysicalMemoryConfigurationSegmentTable:BaseSegmentInterleaveBankContainsAddressSizeFactorSizeModules0x016GB42GBMB/CMP0/CH0/R0/D0MB/CMP0/CH0/R0/D12GBMB/CMP0/CH0/R1/D0MB/CMP0/CH0/R1/D12GBMB/CMP0/CH1/R0/D0MB/CMP0/CH1/R0/D12GBMB/CMP0/CH1/R1/D0.
.
显示系统信息第1章管理系统信息17SystemPROMrevisions:OBP4.
30.
4.
d2011/07/0614:29IOASICrevisions:LocationPathDeviceRevisionIOBD/IO-BRIDGE/pci@780SUNW,sun4v-pci0.
.
.
例1-5x86:显示系统诊断信息以下示例显示prtdiag-l命令在基于x86的系统上的输出.
$prtdiag-lSystemConfiguration:.
.
.
SunFireX4100M2BIOSConfiguration:AmericanMegatrendsInc.
0ABJX10404/09/2009BMCConfiguration:IPMI1.
5(KCS:KeyboardControllerStyle)====ProcessorSocketsVersionLocationTagDual-CoreAMDOpteron(tm)Processor2220CPU1Dual-CoreAMDOpteron(tm)Processor2220CPU2====MemoryDeviceSocketsTypeStatusSetDeviceLocatorBankLocatorunknownempty0DIMM0NODE0unknownempty0DIMM1NODE0DDR2inuse0DIMM2NODE0DDR2inuse0DIMM3NODE0unknownempty0DIMM0NODE1unknownempty0DIMM1NODE1DDR2inuse0DIMM2NODE1DDR2inuse0DIMM3NODE1====On-BoardDevicesLSIserial-SCSI#1GigabitEthernet#1ATIRageXLVGA====UpgradeableSlotsIDStatusTypeDescription1availablePCIExpressPCIExpSLOT0显示系统信息18在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月2availablePCIExpressPCIExpSLOT13availablePCI-XPCIXSLOT24availablePCIExpressPCIExpSLOT35availablePCIExpressPCIExpSLOT4$识别有关芯片多线程功能的信息psrinfo命令进行了修改,不仅可以提供有关虚拟处理器的信息,还可以提供有关物理处理器的信息.
添加此增强功能是为了识别芯片多线程(chipmultithreading,CMT)功能.
-p选项可报告系统中物理处理器的总数.
-t选项显示系统处理器及其关联的套接字、核心和cpuid的树.
使用psrinfo-pv命令可列出系统中所有的物理处理器,以及与每个物理处理器关联的虚拟处理器.
psrinfo命令的缺省输出仍然显示系统的虚拟处理器信息.
有关更多信息,请参见psrinfo(1M)手册页.
显示系统的物理处理器类型使用psrinfo-p命令可以显示系统中物理处理器的总数.
$psrinfo-p1添加-v选项,可以同时显示有关每个物理处理器关联的虚拟处理器的信息.
例如:$psrinfo-pvThephysicalprocessorhas8coresand32virtualprocessors(0-31)Thecorehas4virtualprocessors(0-3)Thecorehas4virtualprocessors(4-7)Thecorehas4virtualprocessors(8-11)Thecorehas4virtualprocessors(12-15)Thecorehas4virtualprocessors(16-19)Thecorehas4virtualprocessors(20-23)Thecorehas4virtualprocessors(24-27)Thecorehas4virtualprocessors(28-31)UltraSPARC-T1(chipid0,clock1000MHz)以下示例显示基于x86的系统上psrinfo-pv命令的示例输出.
$psrinfo-pvThephysicalprocessorhas2virtualprocessors(01)x86(AuthenticAMD40F13family15model65step3clock2793MHz)Dual-CoreAMDOpteron(tm)Processor2220[Socket:F(1207)]Thephysicalprocessorhas2virtualprocessors(23)显示系统信息第1章管理系统信息19x86(AuthenticAMD40F13family15model65step3clock2793MHz)Dual-CoreAMDOpteron(tm)Processor2220[Socket:F(1207)]显示系统的虚拟处理器类型使用psrinfo-v命令可显示有关系统虚拟处理器类型的信息.
$psrinfo-v在基于x86的系统中,使用isalist命令可以显示虚拟处理器类型.
例如:$isalistamd64pentium_pro+mmxpentium_propentium+mmxpentiumi486i386i86例1-6SPARC:显示系统的虚拟处理器类型此示例说明如何显示有关SPARC系统的虚拟处理器类型的信息.
$psrinfo-vStatusofvirtualprocessor28asof:09/13/201014:07:47on-linesince04/08/201021:27:56.
Thesparcv9processoroperatesat1400MHz,andhasasparcv9floatingpointprocessor.
Statusofvirtualprocessor29asof:09/13/201014:07:47on-linesince04/08/201021:27:56.
Thesparcv9processoroperatesat1400MHz,andhasasparcv9floatingpointprocessor.
例1-7SPARC:显示与系统上的每个物理处理器关联的虚拟处理器以下示例显示在OracleSPARCT4-4服务器上使用-pv选项运行psrinfo命令时的输出.
输出显示有关线程位置的芯片(物理处理器)和核心信息.
在确定线程位于哪个物理CPU上以及如何在核心级别映射时,这些信息可能很有用.
$psrinfo-pvThephysicalprocessorhas8coresand64virtualprocessors(0-63)Thecorehas8virtualprocessors(0-7)Thecorehas8virtualprocessors(8-15)Thecorehas8virtualprocessors(16-23)Thecorehas8virtualprocessors(24-31)Thecorehas8virtualprocessors(32-39)Thecorehas8virtualprocessors(40-47)Thecorehas8virtualprocessors(48-55)Thecorehas8virtualprocessors(56-63)SPARC-T4(chipid0,clock2998MHz)Thephysicalprocessorhas8coresand64virtualprocessors(64-127)Thecorehas8virtualprocessors(64-71)Thecorehas8virtualprocessors(72-79)Thecorehas8virtualprocessors(80-87)更改系统信息20在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月Thecorehas8virtualprocessors(88-95)Thecorehas8virtualprocessors(96-103)Thecorehas8virtualprocessors(104-111)Thecorehas8virtualprocessors(112-119)Thecorehas8virtualprocessors(120-127)SPARC-T4(chipid1,clock2998MHz)更改系统信息本节介绍可用来更改常规系统信息的命令.
更改系统信息任务列表任务方向相关说明手动设置系统的日期和时间.
使用datemmddHHMM[[cc]yy]命令行语法手动设置系统的日期和时间.
如何手动设置系统的日期和时间[20]设置每日消息.
通过编辑/etc/motd文件在系统中设置每日消息.
如何设置每日消息[21]更改系统的标识.
使用hostname命令更改系统标识.
如何更改系统标识[21]如何手动设置系统的日期和时间1.
成为管理员.
请参见《在OracleSolaris11.
2中确保用户和进程的安全》中的"使用所指定的管理权限".
2.
提供新日期和时间.
$datemmddHHMM[[cc]yy]mm月份,使用两位数dd月份中的某日,使用两位数HH小时,使用两位数和24小时制MM分钟,使用两位数如何设置每日消息第1章管理系统信息21cc世纪,使用两位数yy年份,使用两位数有关更多信息,请参见date(1)手册页.
3.
使用不带选项的date命令验证是否正确重置了系统日期.
例1-8手动设置系统的日期和时间以下示例显示如何使用date命令手动设置系统的日期和时间.
#dateMonday,September13.
201002:00:16PMMDT#date0921173404ThuSep17:34:34MST2010如何设置每日消息您可以编辑每日消息文件/etc/motd,以包含当系统的所有用户登录时对他们的声明和查询.
请尽量少使用此功能,并定期编辑此文件,以删除过时的消息.
1.
承担指定有AdministratorMessageEdit配置文件的角色.
请参见《在OracleSolaris11.
2中确保用户和进程的安全》中的"使用所指定的管理权限".
2.
使用pfedit命令来编辑/etc/motd文件,并添加您选择的消息.
$pfedit/etc/motd编辑文本以包括要在用户登录期间显示的消息.
包括空格、制表符和回车.

3.
通过显示/etc/motd文件的内容来验证更改.
$cat/etc/motdWelcometotheUNIXuniverse.
Haveaniceday.
如何更改系统标识1.
成为管理员.
请参见《在OracleSolaris11.
2中确保用户和进程的安全》中的"使用所指定的管理权限".
如何更改系统标识22在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月2.
为系统设置主机名称.
#hostnamenamehostname以及domainname命令可用于永久地设置主机名和域名.
当您使用这些命令时,还将自动更新相应的SMF属性和关联的SMF服务.
有关更多信息,请参见hostname(1)、domainname(1M)和nodename(4)手册页.
第2章管理系统进程232第2章管理系统进程本章介绍用于管理系统进程的过程.
本章包含以下主题:"无需管理的系统进程"[23]"管理系统进程"[23]"显示和管理进程类信息"[32]"系统进程问题的故障排除"[39]无需管理的系统进程OracleSolaris10和OracleSolaris11发行版包含用于执行特定任务,但不需要进行任何管理的系统进程.
进程描述fsflush将页面刷新到磁盘的系统守护进程init启动和重新启动其他进程和SMF组件的初始系统进程intrd由于中断而监视并平衡系统负载的系统进程kmem_task监视内存缓存大小的系统进程pageout控制到磁盘的内存分页的系统进程sched负责OS调度和进程交换的系统进程vm_tasks用于在各个CPU间平衡和分配与虚拟内存相关的工作负荷以提高性能的系统进程,该进程针对每个处理器有一个线程.
zpool-pool-name针对每个ZFS存储池的系统进程,包含关联池的I/O任务线程管理系统进程本节介绍了管理系统进程的各种任务.
管理系统进程24在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月管理系统进程任务列表任务描述相关说明列出进程.
使用ps命令列出系统中的所有进程.
如何列出进程[27]显示有关进程的信息.
使用pgrep命令获取要显示其详细信息的进程的进程ID.
如何显示有关进程的信息[28]控制进程.
使用pgrep命令找到进程.
然后,使用相应的pcommand(/proc)来控制进程.
有关(/proc)命令的说明,请参见表2-2"进程命令(/proc)".
如何控制进程[29]中止进程.
通过进程名称或进程ID找到进程.
然后可以使用pkill或kill命令终止进程.
如何终止进程(pkill)[29]如何终止进程(kill)[30]用于管理系统进程的命令下表介绍了用于管理系统进程的命令.
表2-1用于管理进程的命令命令描述手册页ps、pgrep、prstat、pkill检查系统中活动进程的状态,并显示有关这些进程的详细信息.
ps(1)、pgrep(1)和prstat(1M)pkill功能与pgrep相同,但通过名称或其他属性来查找进程或向进程发送信号,然后终止进程.
像kill命令一样向每个匹配的进程发送信号,而不列显进程ID.
pgrep(1)和pkill(1)kill(1)pargs,preap协助进行进程调试.
pargs(1)和preap(1)dispadmin列出缺省进程调度策略.
dispadmin(1M)priocntl为优先级类指定进程并管理进程优先级.
priocntl(1)nice更改分时进程的优先级.
nice(1)psrset将特定进程组绑定到一组处理器而非一个处理器.
psrset(1M)使用ps命令使用ps命令可以检查系统中活动进程的状态,并可显示有关进程的技术信息.
此数据对于管理任务(例如,确定设置进程优先级的方式)很有用.
管理系统进程第2章管理系统进程25根据您所使用的选项,ps命令会报告以下信息:进程的当前状态进程ID父进程ID用户ID调度类优先级进程的地址已用内存已用CPU时间以下列表介绍了ps命令报告的一些字段.
具体显示哪些字段取决于您选择的选项.
有关所有可用选项的说明,请参见ps(1)手册页.
UID进程所有者的有效用户ID.
PID进程ID.
PPID父进程ID.
C用于调度的处理器使用率.
使用-c选项时,将不显示此字段.
CLS进程所属的调度类,例如实时、系统或分时.
只有-c选项包括此字段.
PRI内核线程的调度优先级.
数值越大,表示优先级越高.
NI进程的nice数值,该数值对其调度优先级有影响.
进程的nice值越高,意味着其优先级越低.
ADDRproc结构的地址.
SZ进程的虚拟地址大小.
WCHAN进程休眠的事件或锁定的地址.
STIME以小时、分钟和秒表示的进程开始时间.
TTY从中启动进程或其父级的终端.
问号表示没有控制终端.
TIME进程自开始以来使用的CPU时间总量.
CMD生成进程的命令.
管理系统进程26在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月使用/proc文件系统和命令使用进程命令可以显示有关/proc目录中所列进程的详细信息.
下表列出了/proc进程命令.
/proc目录也称为进程文件系统(ProcessFileSystem,PROCFS).
活动进程的映像按进程ID号存储在PROCFS中.
表2-2进程命令(/proc)进程命令描述pcred显示进程凭证信息pfiles为进程中打开的文件报告fstat和fcntl信息pflags显示/proc跟踪标志、暂挂信号和保留信号以及其他状态信息pldd列出链接至进程中的动态库pmap显示每个进程的地址空间图psig列出每个进程的信号操作和处理程序prun启动每个进程pstack显示每个进程中的每个轻量级进程的十六进制符号栈跟踪pstop停止每个进程ptime使用微状态记帐记录进程的时间ptree显示包含该进程的进程树pwait在进程终止后显示状态信息pwdx显示进程的当前工作目录有关更多信息,请参见proc(1)手册页.
进程工具与ps命令的某些选项相似,区别在于这些命令提供的输出更详细.
进程命令可执行以下操作:显示有关进程的更多信息,例如fstat和fcntl、工作目录以及父进程和子进程树通过允许用户停止或恢复进程来提供对进程的控制使用进程命令(/proc)来管理进程通过使用一些进程命令,可以显示有关进程的详细技术信息或者控制活动进程.
表2-2"进程命令(/proc)"列出了部分/proc命令.
如果某个进程陷入无限循环或者执行时间过长,则可能需要停止(中止)该进程.
有关使用kill或pkill命令停止进程的更多信息,请参见第2章管理系统进程.
/proc文件系统是一个目录分层结构,其中包括状态信息和控制功能的附加子目录.

/proc文件系统还提供了xwatchpoint功能,用于在进程地址空间中的各页上重新映射读写权限.
该工具没有限制,并且是MT-safe(多线程安全)的.
如何列出进程第2章管理系统进程27为了能使用xwatchpoint功能,调试工具已进行了修改,这意味着整个xwatchpoint进程会更快.
使用dbx调试工具设置xwatchpoints时,以下限制不再适用:由于基于SPARC的系统注册窗口而在栈的本地变量中设置xwatchpoints.
在多线程进程中设置xwatchpoints.
有关更多信息,请参见proc(4)和mdb(1)手册页.
如何列出进程使用ps命令可列出系统中的所有进程.
$ps[-efc]ps只显示与您的登录会话关联的进程.
-ef显示系统中正在执行的所有进程的全部信息.
-c显示进程调度程序信息.
例2-1列出进程以下示例显示ps命令在不带任何选项时的输出.
$psPIDTTYTIMECOMD1664pts/40:06csh2081pts/40:00ps以下示例显示ps-ef命令的输出.
此输出显示,系统启动时最先执行的进程是sched(交换程序),然后是init进程、pageout等.
$ps-efUIDPIDPPIDCSTIMETTYTIMECMDroot00018:04:040:15schedroot50018:04:030:05zpool-rpoolroot10018:04:050:00/sbin/initroot20018:04:050:00pageoutroot30018:04:052:52fsflushroot60018:04:050:02vmtasksdaemon7391019:03:580:00/usr/lib/nfs/nfs4cbdroot91018:04:060:14/lib/svc/bin/svc.
startdroot111018:04:060:45/lib/svc/bin/svc.
configddaemon5591018:04:490:00/usr/sbin/rpcbindnetcfg471018:04:190:01/lib/inet/netcfgddladm441018:04:170:00/sbin/dlmgmtdnetadm511018:04:220:01/lib/inet/ipmgmtdroot372338018:04:430:00/usr/lib/hal/hald-addon-cpufreq如何显示有关进程的信息28在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月root671018:04:300:02/lib/inet/in.
mpathdroot1411018:04:380:00/usr/lib/pfexecdnetadm891018:04:310:03/lib/inet/nwamdroot6021018:04:500:02/usr/lib/inet/inetdstartroot1311018:04:350:01/sbin/dhcpagentdaemon1191018:04:330:00/lib/crypto/kcfdroot3331018:04:410:07/usr/lib/hal/hald--daemon=yesroot370338018:04:430:00/usr/lib/hal/hald-addon-network-discoveryroot1591018:04:390:00/usr/lib/sysevent/syseventdroot2361018:04:400:00/usr/lib/ldoms/drdroot5351018:04:460:09/usr/sbin/nscdroot3051018:04:400:00/usr/lib/zones/zonestatdroot3261018:04:410:03/usr/lib/devfsadm/devfsadmdroot3141018:04:400:00/usr/lib/dbus-daemon--system.
.
.
如何显示有关进程的信息1.
获得要显示更多信息的进程的进程ID.
#pgrepprocess进程ID显示在输出的第一列中.
2.
显示进程信息.
#/usr/bin/pcommandPIDpcommand您希望运行的进程命令.
表2-2"进程命令(/proc)"列出并介绍了这些命令.
PID标识进程ID.
例2-2显示有关进程的信息以下示例显示如何使用进程命令来显示有关cron进程的更多信息.
#pgrepcronObtainstheprocessIDforthecronprocess4780#pwdx4780Displaysthecurrentworkingdirectoryforthecronprocess4780:/var/spool/cron/atjobs#ptree4780Displaystheprocesstreethatcontainsthecronprocess4780/usr/sbin/cron#pfiles4780Displaysfstatandfcntlinformation4780:/usr/sbin/cronCurrentrlimit:256filedescriptors0:S_IFCHRmode:0666dev:290,0ino:6815752uid:0gid:3rdev:13,2O_RDONLY|O_LARGEFILE如何控制进程第2章管理系统进程29/devices/pseudo/mm@0:null1:S_IFREGmode:0600dev:32,128ino:42054uid:0gid:0size:9771O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE/var/cron/log2:S_IFREGmode:0600dev:32,128ino:42054uid:0gid:0size:9771O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE/var/cron/log3:S_IFIFOmode:0600dev:32,128ino:42049uid:0gid:0size:0O_RDWR|O_LARGEFILE/etc/cron.
d/FIFO4:S_IFIFOmode:0000dev:293,0ino:4630uid:0gid:0size:0O_RDWR|O_NONBLOCK5:S_IFIFOmode:0000dev:293,0ino:4630uid:0gid:0size:0O_RDWR如何控制进程1.
获得要控制的进程的进程ID.
#pgrepprocess进程ID显示在输出的第一列中.
2.
使用相应的进程命令来控制进程.
#/usr/bin/pcommandPIDpcommand您希望运行的进程命令.
表2-2"进程命令(/proc)"列出并介绍了这些命令.
PID标识进程ID.
3.
验证进程状态.
#ps-ef|grepPID终止进程(pkill、kill)有时,您可能需要停止(中止)无限循环进程,或在完成前停止大型作业.
您可以中止属于您的任何进程.
系统管理员可以中止系统中的任何进程,但进程ID为0、1、2、3和4的进程除外.
中止这些进程很可能会使系统崩溃.
有关更多信息,请参见pgrep(1)、pkill(1)以及kill(1)手册页.
如何终止进程(pkill)1.
要终止其他用户的进程,请承担root角色.
如何终止进程(kill)30在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月2.
获得要终止的进程的进程ID.
$pgrepprocess例如:$pgrepnetscape587566在输出中显示进程ID.
注-要获取有关SunRay系统的进程的信息,请使用以下命令:列出所有用户进程:#ps-fuuser定位某位用户拥有的特定进程:#ps-fuuser|grepprocess3.
终止进程.
$pkill[signal]PIDsignal当pkill命令行语法中不包含任何信号时,使用的缺省信号为–15(SIGKILL).
将–9信号(SIGTERM)与pkill命令一起使用,可以确保进程快速终止.
但是,不应使用–9信号来中止特定进程,例如数据库进程或LDAP服务器进程,因为数据可能已丢失.
PID要停止的进程的名称.
提示-使用pkill命令终止进程时,先尝试使用该命令本身,而不包括信号选项.
如果几分钟后进程仍然没有终止,请使用带有-9信号的pkill命令.
4.
验证进程是否已终止.
$pgrepprocesspgrep命令的输出中应不再列出已终止的进程.
如何终止进程(kill)1.
要终止其他用户的进程,请承担root角色.
2.
获得要终止的进程的进程ID.
如何终止进程(kill)第2章管理系统进程31#ps-fuuser其中user是进程的所有者.
进程ID显示在输出的第一列中.
3.
终止进程.
#kill[signal-number]PIDsignal当kill命令行语法中不包括任何信号时,使用的缺省信号为–15(SIGKILL).
将–9信号(SIGTERM)与kill命令一起使用,可以确保进程快速终止.
但是,不应使用–9信号来中止特定进程,例如数据库进程或LDAP服务器进程,因为数据可能已丢失.
PID是要终止的进程的进程ID.
提示-使用kill命令停止进程时,先尝试使用该命令本身,而不包括信号选项.
等待几分钟以确定进程是否终止,然后再使用带有-9信号的kill命令.
4.
验证进程是否已终止.
$psps命令的输出中应不再列出已终止的进程.
调试进程(pargs、preap)pargs命令和preap命令可以改进进程调试.
pargs命令可以列显与实时进程或核心文件关联的参数和环境变量.
preap命令可以删除不再存在(僵停)的进程.
僵停进程尚不具有由父进程请求的退出状态.
这些进程通常是无害的,但如果数量众多,则会占用系统资源.
可以使用pargs和preap命令检查您有权检查的任何进程.
如果您成为管理员,可以检查任何进程.
有关使用preap命令的信息,请参见preap(1)手册页.
有关使用pargs命令的信息,请参见pargs(1)手册页.
另请参见proc(1)手册页.
例2-3调试进程(pargs)pargs命令可以解决一个长期存在的问题,即使用ps命令无法显示传递给进程的所有参数.
以下示例显示如何通过结合使用pargs命令和pgrep命令来显示传递给进程的参数.
#pargs`pgrepttymon`579:/usr/lib/saf/ttymon-g-h-psystem-nameconsolelogin:-Tsun-d/dev/console-l显示和管理进程类信息32在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月argv[0]:/usr/lib/saf/ttymonargv[1]:-gargv[2]:-hargv[3]:-pargv[4]:system-nameconsolelogin:argv[5]:-Targv[6]:sunargv[7]:-dargv[8]:/dev/consoleargv[9]:-largv[10]:consoleargv[11]:-margv[12]:ldterm,ttcompat548:/usr/lib/saf/ttymonargv[0]:/usr/lib/saf/ttymon以下示例显示如何使用pargs-e命令来显示与某一进程关联的环境变量.
$pargs-e67636763:tcshenvp[0]:DISPLAY=:0.
0显示和管理进程类信息您可以在您的系统上配置进程调度类以及分时类的用户优先级范围.
可能的进程调度类如下所示:公平份额(FSS)固定(FX)系统(SYS)交互(IA)实时(RT)分时(TS)用户提供的优先级范围为-60到+60.
进程的优先级是从父进程继承的.
此优先级称为用户模式优先级.
系统会在分时分发参数表中查找用户模式优先级.
然后,系统将添加任何nice或priocntl(用户提供的)优先级并确保范围在0–59之间,以创建全局优先级.
显示进程类信息本节包含以下主题:"显示进程优先级信息"[33]使用priocntl-l命令可以显示进程调度类和优先级范围.
显示和管理进程类信息第2章管理系统进程33"显示进程的全局优先级"[33]使用ps-ecl命令可以显示进程的全局优先级.
显示进程优先级信息使用priocntl-l命令可显示进程调度类和优先级范围.
$priocntl-l以下示例显示priocntl-l命令的输出.
#priocntl-lCONFIGUREDCLASSESSYS(SystemClass)TS(TimeSharing)ConfiguredTSUserPriorityRange:-60through60FX(Fixedpriority)ConfiguredFXUserPriorityRange:0through60IA(Interactive)ConfiguredIAUserPriorityRange:-60through60显示进程的全局优先级使用ps命令可显示进程的全局优先级.
$ps-eclPRI列下列出了全局优先级.
以下示例显示ps-ecl命令的输出.
PRI列中的值显示每个进程的优先级.
$ps-eclFSUIDPIDPPIDCLSPRIADDRSZWCHANTTYTIMECMD1T000SYS9600:11sched1S050SDC9900:01zpool-rp0S010TS596880:00init1S020SYS9800:00pageout1S030SYS6002:31fsflush1S060SDC9900:00vmtasks0S16561TS5910260:01ipmgmtd0S091TS5934800:04svc.
star0S0111TS5934800:13svc.
conf0S01621TS595330:00pfexecd0S017381730TS59817pts/10:00bash0S18521TS598510:17rpcbind0S17431TS5910960:01netcfgd显示和管理进程类信息34在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月0S15471TS597650:00dlmgmtd0S0681TS596940:01in.
mpath0S112201FX606820:00nfs4cbd0S16891TS5916730:02nwamd0S01461TS596290:01dhcpagen0S11291TS5918430:00kcfd0S112151FX607380:00lockd0S0829828TS599680:00hald-run0S03611TS5910810:01devfsadm0S08791TS5911660:01inetd0O1197641773880TS59557console0:00ps0S0844829TS599960:00hald-add0S0895866TS595900:00ttymon0S08401TS594950:00cron0S08741TS594250:00utmpd0S01724956TS5922150:00sshd0S1197648809TS59565console0:00csh0S02101TS5916220:00sysevent0S02791TS594720:00iscsid0S112211TS5913490:00nfsmapid1S03740SDC9900:00zpool-us0S012071TS5910630:00rmvolmgr0S08281TS5917760:03hald0S0853829TS598960:02hald-add0S03731TS599850:00picld0S02991TS598360:00dbus-dae0S1252417301725TS59452pts/10:00csh0S03701TS595740:00powerd0S02641FX606370:00zonestat0S08669TS595550:00sac0S0851829TS599980:00hald-add0S1252417251724TS5927320:00sshd0S112111TS597830:00statd0S010461TS5917700:13intrd0S08891TS5910630:00syslogd0S012091TS597920:00in.
ndpd0S011881186TS599510:15automoun0S01172829TS597250:00hald-add0S011861TS596920:00automoun0S10117391738TS59817pts/10:00bash0S011991TS5914950:02sendmail0S09561TS5917290:00sshd0S2511921TS5915280:00sendmail0S09341TS5968970:14fmd0S011311TS5916910:07nscd0S111811TS596990:00ypbind管理进程类信息任务列表使用以下过程管理您的进程类.
如何指定进程优先级(priocntl)第2章管理系统进程35任务描述相关说明指定进程优先级.
使用priocntl-e-c命令可以指定的优先级启动进程.
如何指定进程优先级(priocntl)[35]更改分时进程的调度参数.
使用priocntl-s-m命令可以更改分时进程中的调度参数.
如何更改分时进程的调度参数(priocntl)[36]更改进程的类.
使用priocntl-s-c命令可以更改进程的类.
如何更改进程的类(priocntl)[37]更改进程的优先级.
使用/usr/bin/nice命令及相应选项可以降低或提高进程的优先级.
"更改进程优先级(nice)"[38]更改进程的调度优先级(priocntl)进程的调度优先级是进程调度程序根据调度策略指定的优先级.
dispadmin命令可以列出缺省调度策略.
有关更多信息,请参见dispadmin(1M)手册页.
可以使用priocntl命令将进程指定给优先级类并管理进程优先级,如以下过程所示.
如何指定进程优先级(priocntl)1.
承担root角色.
请参见《在OracleSolaris11.
2中确保用户和进程的安全》中的"使用所指定的管理权限".
2.
以指定的优先级启动进程.
#priocntl-e-cclass-muser-limit-pPRIcommand-name-e执行该命令.
-cclass指定要在其中运行进程的类.
有效类包括TS(timesharing,分时)、RT(realtime,实时)、IA(interactive,交互)、FSS(fairshare,公平份额)和FX(fixedpriority,固定优先级).
-muser-limit将此选项与-p选项一起使用时,还可指定可将优先级提高或降低的最大量.
-pPRI允许您为实时线程指定在RT类中的相对优先级.
对于分时进程而言,使用-p选项可以指定用户提供的优先级,该优先级范围是-60到+60.
command-name指定将执行的命令的名称.
如何更改分时进程的调度参数(priocntl)36在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月3.
验证进程状态.
#ps-ecl|grepcommand-name例2-4指定进程优先级(priocntl)以下示例显示如何以用户提供的最高优先级启动find命令.
#priocntl-e-cTS-m60-p60find.
-namecore-print#ps-ecl|grepfind如何更改分时进程的调度参数(priocntl)1.
承担root角色.
请参见《在OracleSolaris11.
2中确保用户和进程的安全》中的"使用所指定的管理权限".
2.
更改正在运行的分时进程的调度参数.
#priocntl-s-muser-limit[-puser-priority]-iIDtypeIDlist-s允许设置用户优先级范围的上限并更改当前优先级.
-muser-limit使用-p选项时,可以指定可将优先级提高或降低的最大量.
-puser-priority允许指定优先级.
-iIDtypeIDlist结合使用IDtype和IDlist可以标识一个或多个进程.
IDtype指定ID的类型,例如进程ID或用户ID.
IDlist标识进程ID或用户ID的列表.
3.
验证进程状态.
#ps-ecl|grepIDlist例2-5更改分时进程的调度参数(priocntl)以下示例显示如何以500毫秒的时间分片、RT类中的优先级20以及全局优先级120来执行命令.
#priocntl-e-cRT-m500-p20myprog#ps-ecl|grepmyprog如何更改进程的类(priocntl)第2章管理系统进程37如何更改进程的类(priocntl)1.
(可选)承担root角色.
注-您必须承担root角色,或在实时shell中工作,才能将实时进程更改为其他进程或将某个进程更改为实时进程.
如果以root角色将用户进程改为实时类,则用户随后将无法使用priocntl-s命令来更改实时调度参数.
请参见《在OracleSolaris11.
2中确保用户和进程的安全》中的"使用所指定的管理权限".
2.
更改进程的类.
#priocntl-s-cclass-iIDtypeIDlist-s允许设置用户优先级范围的上限并更改当前优先级.
-cclass指定进程所要改用的类,分时则指定TS,实时则指定RT.
-iIDtypeIDlist结合使用IDtype和IDlist可以标识一个或多个进程.
IDtype指定ID的类型,例如进程ID或用户ID.
IDlist标识进程ID或用户ID的列表.
3.
验证进程状态.
#ps-ecl|grepIDlist例2-6更改进程的类(priocntl)以下示例显示如何将属于用户15249的所有进程都更改为实时进程.
#priocntl-s-cRT-iuid15249#ps-ecl|grep15249更改分时进程的优先级(nice)支持nice命令只是为了向下兼容以前的发行版.
priocntl命令在管理进程方面提供了更大的灵活性.
进程的优先级由其调度类的策略和nice数值决定.
每个分时进程都有全局优先级.
全局优先级的计算方法是用户提供的优先级(该优先级可能受nice或priocntl命令影响)加上系统计算的优先级.
进程的执行优先级数由操作系统指定.
优先级数由多个因素决定,其中包括进程的调度类、进程使用的CPU时间以及进程的nice数值(对于分时进程的情况).
如何更改进程的类(priocntl)38在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月每个分时进程都以缺省nice数值启动,它从父进程中继承该数值.
nice数值显示在ps报告的NI列中.
用户可通过提高用户提供的优先级来降低进程的优先级.
但是,只有管理员能够通过降低nice数值来提高进程的优先级.
此限制使用户无法提高自己所拥有进程的优先级,因此会独占更大的CPU份额.
nice数值的范围是从0到+39,其中0表示最高优先级.
每个分时进程的缺省nice值为20.
有两个可用的命令版本:标准版本/usr/bin/nice以及Cshell内置命令.
更改进程优先级(nice)以用户身份,您可以降低进程的优先级.
而成为管理员可以提高或降低进程的优先级.

以用户身份,您可以通过增大nice数值来降低命令的优先级.
以下nice命令使nice数值增大5个单位,从而以更低的优先级执行command-name.
$/usr/bin/nice-5command-name在此命令中,减号指定后面的内容是一个选项.
也可以通过以下方式来指定此命令:$/usr/bin/nice-n5command-name以下nice命令使nice数值增大10个单位(缺省增量)但未超出最大值39,从而降低了command-name的优先级.
$/usr/bin/nicecommand-name作为管理员,您可以通过更改nice数值来提高或降低命令的优先级.
以下nice命令使nice数值降低10个单位,从而提高了command-name的优先级.
该数值不低于最小值0.
#/usr/bin/nice--10command-name在此命令中,第一个减号指定后面的内容是一个选项.
第二个减号指示一个负数.

以下nice命令使nice数值增加5个单位,从而降低了command-name的优先级.
该数值不超过最大值39.
#/usr/bin/nice-5command-name有关更多信息,请参见nice(1)手册页.
系统进程问题的故障排除第2章管理系统进程39系统进程问题的故障排除下面是您可能遇到的一些常见的系统进程问题:查找同一用户所有的多个相同作业.
出现此问题可能是由于正在运行的某个脚本启动了多个后台作业,而未等待任何作业完成.
查找累积了大量CPU时间的进程.
通过检查ps输出中的TIME字段可以确定此问题.
此值可能表明这个进程处于无限循环.
查找运行优先级过高的进程.
使用ps-c命令检查CLS字段,其中显示每个进程的调度类.
作为实时(RT)进程执行的进程会独占CPU.
或者,查找nice数值很大的分时(TS)进程.
管理员可能提高了某一进程的优先级.
系统管理员可以使用nice命令来降低优先级.
查找所占用的CPU时间逐步增加的失控进程.
通过查看进程启动时的时间(STIME)并监视一会儿CPU时间累积(TIME),便可确定此问题.
40在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月第3章监视系统性能413第3章监视系统性能从计算机或网络中获取良好性能是系统管理的重要部分.
本章介绍了与管理计算机系统性能有关的一些因素.
此外,还介绍了使用vmstat、iostat、df和sar命令监视系统性能的过程.
本章包含以下主题:"在何处查找有关监视系统性能的信息"[41]"关于影响系统性能的系统资源"[42]"关于进程和系统性能"[42]"关于监视系统性能"[44]"显示系统性能信息"[45]"监视系统活动"[51]在何处查找有关监视系统性能的信息系统性能任务更多信息管理进程第2章管理系统进程监视系统性能第3章监视系统性能更改可调参数《OracleSolaris11.
2可调参数参考手册》管理系统性能任务《在OracleSolaris11.
2中进行资源管理》中的第2章"关于项目和任务"使用FX和FS调度程序管理进程《在OracleSolaris11.
2中进行资源管理》中的第8章"公平份额调度器"使用OracleEnterpriseManagerOpsCenter管理性能如果您需要在数据中心内监视、分析和提高物理和虚拟操作系统、服务器和存储设备的性能,而不只是监视单个系统的性能,则可以使用OracleEnterpriseManagerOpsCenter中提供的综合系统管理解决方案.
关于影响系统性能的系统资源42在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月EnterpriseManagerOpsCenter中的监视功能提供了有关数据中心内受监视的操作系统和区域的详细信息.
您可以使用这些信息来评估性能、确定问题并执行调优.
分析功能可用于OracleSolaris操作系统、Linux以及OS虚拟化技术,包括OracleSolarisZones、OracleVMServerforSPARC以及OracleVMServerforx86来宾.
有关信息,请参见http://www.
oracle.
com/pls/topic/lookupctx=oc122(OracleEnterpriseManagerOpsCenter12c发行版2文档库).
关于影响系统性能的系统资源计算机系统的性能取决于该系统使用和分配其资源的方式.
定期监视系统的性能,以便了解系统在正常情况下的行为.
应当明确了解预期情况,并能够在出现问题时进行识别.
影响性能的系统资源包括:中央处理器(centralprocessingunit,CPU)CPU通过从内存中提取并执行指令来对指令进行处理.
输入/输出(Input/Output,I/O)设备I/O设备可向计算机传入信息,并可从中传出信息.
此类设备可能是终端和键盘、磁盘驱动器或打印机.
内存物理(或主)内存是系统中的随机访问存储器(RandomAccessMemory,RAM)量.
第3章监视系统性能介绍了显示系统活动和性能相关统计信息的工具.
关于进程和系统性能与进程相关的部分术语包括:Process(进程)任何系统活动或作业.
每次引导系统、执行命令或启动应用程序时,系统都会激活一个或多个进程.
LightweightProcess,LWP(轻量级进程)虚拟CPU或执行资源.
LWP由内核预定,以根据其预定类和优先级来使用可用的CPU资源.
LWP包含可交换信息,以及包含必须始终位于内存中的信息的内核线程.
Applicationthread(应用程序线程)具有单独栈的一系列指令,这些指令可在用户的地址空间中独立执行.
可在LWP顶部复用应用程序线程.
关于进程和系统性能第3章监视系统性能43一个进程可以由多个LWP和多个应用程序线程组成.
内核预定内核线程结构,该结构是OracleSolaris环境中的预定实体.
各种进程结构如下所示:proc包含与整个进程有关的信息,该信息必须始终位于主内存中kthread包含与LWP有关的信息,该信息必须始终位于主内存中user包含可交换的"每进程"信息klwp包含可交换的"每LWP进程"信息下图显示了这些进程结构之间的关系.
图3-1进程结构之间的关系进程中的所有线程都可以访问大多数进程资源.
几乎所有进程虚拟内存都是共享的.
一个线程对共享数据的更改可供进程中的其他线程使用.
关于监视系统性能44在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月关于监视系统性能计算机运行时,操作系统中的计数器会增加,以跟踪各种系统活动.
跟踪的系统活动如下所示:中央处理器(CentralProcessingUnit,CPU)使用率缓冲区使用情况磁盘和磁带输入/输出(Input/Output,I/O)活动终端设备活动系统调用活动上下文切换文件访问队列活动内核表进程间通信分页可用内存和交换空间内核内存分配(KernelMemoryAllocation,KMA)监视工具OracleSolaris软件提供了多种工具,以帮助您跟踪系统的执行情况.
表3-1性能监视工具命令描述更多信息cpustat和cputrack命令使用CPU性能计数器监视系统或进程的性能.
cpustat(1M)和cputrack(1)netstat和nfsstat命令显示有关网络性能的信息.
netstat(1M)和nfsstat(1M)ps和prstat命令显示有关活动进程的信息.
第2章管理系统进程sar和sadc命令收集并报告系统活动数据.
第3章监视系统性能swap命令显示有关系统中的可用交换空间的信息.
《在OracleSolaris11.
2中管理文件系统》中的第3章"配置附加交换空间"vmstat和iostat命令汇总系统活动数据,如虚拟内存统计信息、磁盘使用情况和CPU活动.
第3章监视系统性能kstat和mpstat命令检查系统中可用的内核统计信息或kstats,并报告与命令行上指定的条件匹配的统计信息.
mpstat命令以表格形式报告处理器统计信息.
kstat(1M)和mpstat(1M)手册页.
显示系统性能信息第3章监视系统性能45显示系统性能信息本节介绍了用于监视和显示系统性能信息的任务.
显示虚拟内存统计信息可以使用vmstat命令报告虚拟内存统计信息,以及有关系统事件(例如CPU负载、分页、上下文切换数、设备中断和系统调用)的信息.
vmstat命令还可以显示有关交换、高速缓存刷新和中断的统计信息.
表3-2vmstat命令的输出类别字段名描述procsr分发队列中的内核线程数b正在等待资源的阻塞内核线程数w正在等待处理中的资源完成的换出LWP数memory报告实际内存和虚拟内存的使用情况swap可用交换空间free可用列表的大小page以秒为单位报告缺页和分页活动re回收的页面mf次要错误和主要错误pi页入的千字节数po页出的千字节数fr释放的千字节数de最近换入的进程所需的预计内存sr由page守护程序扫描的当前未使用的页数.
如果sr不等于零,则page守护程序一直在运行.
disk报告每秒的磁盘操作数,最多显示四个磁盘中的数据faults报告每秒的陷阱/中断速率in每秒的中断次数sy每秒的系统调用数csCPU上下文切换速率cpu报告CPU使用时间us用户时间sy系统时间id空闲时间显示系统性能信息46在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月有关此命令的更多详细说明,请参见vmstat(1M)手册页.
显示虚拟内存统计信息(vmstat)要显示虚拟内存统计信息,请以秒为时间间隔单位使用vmstat命令.
$vmstatn其中,n是两次报告之间的间隔秒数.
以下示例显示了利用vmstat报告的以5秒为间隔收集的统计信息:$vmstat5kthrmemorypagediskfaultscpurbwswapfreeremfpipofrdesrddf0s1--insycsussyid00086316036568003100000000406378209109900076564020856803600000000047944451378339400076564020856800000000000423214235001000007657122086400000000300041215818100100000765832208760000000000004021571790010000076583220876000000000000403153182001000007658322087600000000000040216817700100000765832208760000000000004021531780010000076583220876001800000000040716518600100显示系统事件信息(vmstat-s)运行vmstat-s命令,以显示自上次引导系统以来发生的系统事件数.
$vmstat-s0swapins0swapouts0pagesswappedin0pagesswappedout522586totaladdresstrans.
faultstaken17006pageins25pageouts23361pagespagedin28pagespagedout45594totalreclaims45592reclaimsfromfreelist0micro(hat)faults522586minor(as)faults16189majorfaults98241copy-on-writefaults137280zerofillpagefaults45052pagesexaminedbytheclockdaemon0revolutionsoftheclockhand26pagesfreedbytheclockdaemon显示系统性能信息第3章监视系统性能472857forks78vforks1647execs34673885cpucontextswitches65943468deviceinterrupts711250traps63957605systemcalls3523925totalnamelookups(cachehits99%)92590usercpu65952systemcpu16085832idlecpu7450waitcpu显示交换统计信息(vmstat-S)运行vmstat-S,以显示交换统计信息.
$vmstat-Skthrmemorypagediskfaultscpurbwswapfreesisopipofrdesrddf0s1--insycsussyid000862608364792001000000004063942131099以下列表介绍了交换统计信息字段.
有关其他字段的说明,请参见表3-2"vmstat命令的输出".
si每秒换入的平均LWP数so换出的完整进程数注-vmstat命令会截断si和so字段的输出.
应使用sar命令显示更精确的交换统计信息记录.
显示每台设备的中断次数(vmstat-i)运行vmstat-i命令,以显示每台设备的中断次数.
以下示例显示vmstat-i命令的输出.
$vmstat-iinterrupttotalrateclock52163269100esp026000774zsc0253410zsc1489170cgsixc04590lec04008820fdc0140显示系统性能信息48在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月bppc000audiocs000Total55238959105显示磁盘使用率信息使用iostat命令可以报告有关磁盘输入和输出的统计信息,以及生成对吞吐量、使用率、队列长度、事务速率和服务时间的测量值.
有关此命令的详细说明,请参阅iostat(1M)手册页.
显示磁盘使用率信息(iostat)使用iostat命令和时间间隔秒数可以显示磁盘使用率信息.
$iostat5ttyfd0sd3nfs1nfs31cputintoutkpstpsservkpstpsservkpstpsservkpstpsservussywtid01004103029009304742094输出的第一行显示自上次引导系统以来的统计信息.
后面的每行显示间隔的统计信息.

缺省情况下会显示终端(tty)、磁盘(fd以及sd)和CPU(cpu)的统计信息.
以下示例显示每隔5秒收集的磁盘统计信息.
$iostat5ttysd0sd6nfs1nfs49cputintoutkpstpsservkpstpsservkpstpsservkpstpsservussywtid001049000000001500010004700000000000000010001600000000000000010001600000000000000010001644613200000000000199016000000000000000100016000000000000000100016000000000000000100016000000000000000100016000000000000000100016312300000000000199016000000000000000100016000000000000000100016000000000000000100下表介绍了iostatn命令输出中的字段.
设备类型字段名描述终端显示系统性能信息第3章监视系统性能49设备类型字段名描述tin终端输入队列中的字符数tout终端输出队列中的字符数磁盘bps每秒块数tps每秒事务数serv平均服务时间(毫秒)CPUus在用户模式下sy在系统模式下wt等待I/Oid空闲显示扩展磁盘统计信息(iostat-xtc)运行iostatxt命令,以显示扩展磁盘统计信息.
$iostatxtdevicer/sw/skr/skw/swaitactvwsvc_tasvc_t%w%btintoutblkdev00.
00.
00.
00.
00.
00.
00.
00.
00001sd00.
119.
31.
492.
40.
00.
00.
21.
601sd10.
00.
00.
00.
00.
00.
00.
00.
000nfs90.
00.
00.
00.
00.
00.
00.
01.
000nfs100.
00.
00.
00.
00.
00.
00.
07.
600nfs110.
00.
00.
00.
00.
00.
00.
015.
600nfs120.
30.
01.
90.
00.
00.
00.
030.
501iostatxt命令对每个磁盘显示一行输出.
输出字段如下:r/s每秒读取次数w/s每秒写入次数kr/s每秒读取的千字节数kw/s每秒写入的千字节数wait等待服务的平均事务数(队列长度)actv处于活动服务状态的平均事务数svc_t平均服务时间(毫秒)%w队列不为空的时间百分比显示系统性能信息50在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月%b磁盘繁忙的时间百分比显示磁盘空间统计信息(df)使用df命令可以显示挂载的每个磁盘中的可用磁盘空间量.
df报告的usable磁盘空间只反映全部容量的90%,因为报告统计信息留出总可用空间的10%以上.
此头空间通常保持为空,以实现更好的性能.
df命令实际报告的磁盘空间百分比是已用空间除以可用空间.
如果文件系统超出容量的90%,则可使用cp命令将文件转移至具有可用空间的磁盘.
或者,使用tar或cpio命令将文件转移至磁带.
也可以删除文件.
有关此命令的详细说明,请参见df(1M)手册页.
显示磁盘空间信息(df-k)使用df-k命令显示磁盘空间信息(千字节).
$df-kFilesystemkbytesusedavailcapacityMountedon/dev/dsk/c0t3d0s01928074023113329624%/例3-1显示文件系统信息以下示例显示df-k命令针对SPARC的系统的输出.
$df-kFilesystem1024-blocksUsedAvailableCapacityMountedonrpool/ROOT/solaris-16119198771260043951405778165%//devices0000%/devices/dev0000%/devctfs0000%/system/contractproc0000%/procmnttab0000%/etc/mnttabswap418423649641837401%/system/volatileobjfs0000%/system/objectsharefs0000%/etc/dfs/sharetab/usr/lib/libc/libc_hwcap1.
so.
114658221160043951405778165%/lib/libc.
so.
1fd0000%/dev/fdswap41837846041837241%/tmprpool/export191987712351405778161%/exportrpool/export/home191987712321405778161%/export/homerpool/export/home/123191987712131088131405778169%/export/home/123rpool/export/repo191987712111872041405778168%/export/reporpool/export/repo2010_11191987712311405778161%/export/repo2010_11rpool19198771252389741405778164%/rpool监视系统活动第3章监视系统性能51/export/home/123153686630131088131405778169%/home/123df-k命令的输出字段如下所示:1024-blocks文件系统中可用空间的总大小Used已用空间量Available可用空间量Capacity已用空间量,表示为总容量的百分比Mountedon挂载点例3-2使用不带任何选项的df命令显示文件系统信息使用不带操作数或选项的df命令时,该命令将报告所有挂载的文件系统,如以下示例中所示.
$df/(rpool/ROOT/solaris):100715496blocks100715496files/devices(/devices):0blocks0files/dev(/dev):0blocks0files/system/contract(ctfs):0blocks2147483601files/proc(proc):0blocks29946files/etc/mnttab(mnttab):0blocks0files/system/volatile(swap):42257568blocks2276112files/system/object(objfs):0blocks2147483441files/etc/dfs/sharetab(sharefs):0blocks2147483646files/dev/fd(fd):0blocks0files/tmp(swap):42257568blocks2276112files/export(rpool/export):100715496blocks100715496files/export/home(rpool/export/home):100715496blocks100715496files/export/home/admin(rpool/export/home/admin):100715496blocks100715496files/rpool(rpool):100715496blocks100715496files/export/repo2010_11(rpool/export/repo2010_11):281155639blocks281155639files/rpool(rpool):281155639blocks281155639files监视系统活动本节介绍了监视系统活动的活动.
监视系统活动(sar)使用sar命令可执行以下任务:监视系统活动52在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月组织并查看有关系统活动的数据.
根据特殊请求访问系统活动数据.
生成自动报告以测量和监视系统性能,并生成特殊请求报告以确定特定性能问题.
有关如何设置要对系统运行的sar命令的信息以及相应工具的说明,请参见"自动收集系统活动数据(sar)"[67].
有关此命令的详细说明,请参见sar(1)手册页.
检查文件访问(sar-a)使用sar-a命令显示文件访问操作统计信息.
$sar-aSunOSt2k-brm-245.
10Generic_144500-10sun4v.
.
.
00:00:00iget/snamei/sdirbk/s01:00:0003002:00:0003003:00:0003004:00:0003005:00:0003006:00:0003007:00:0003008:00:0003008:20:0103008:40:0003009:00:0003009:20:01010009:40:0101010:00:02050Average040sar-a命令报告的操作系统例程如下所示:iget/s对不位于目录名称查找高速缓存(DirectoryNameLook-upCache,DNLC)中的inode发出的请求数.
namei/s每秒搜索的文件系统路径数.
如果namei在DNLC中找不到目录名称,它会调用iget以获取文件或目录的inode.
因此,大多数igets都是DNLC遗漏的结果.
dirbk/s每秒发出的目录块读取数.
这些操作系统例程的报告值越大,内核访问用户文件所用的时间就越多.
时间的长短将反映程序和应用程序使用文件系统的程度.
-a选项有助于查看磁盘与应用程序的相关情况.
监视系统活动第3章监视系统性能53检查缓冲区活动(sar-b)使用sar-b命令可显示缓冲区活动统计信息.
缓冲区用于高速缓存元数据.
元数据包括inode、柱面组块和间接块.
$sar-b00:00:00bread/slread/s%rcachebwrit/slwrit/s%wcachepread/spwrit/s01:00:0000100005500下表介绍了-b选项显示的缓冲区活动.
字段名描述bread/s从磁盘提交至高速缓存存储区的每秒平均读取数lread/s每秒从高速缓存存储区进行的平均逻辑读取数%rcache在高速缓存存储区中找到的逻辑读取的分数(100%减去bread/s与lread/s之比)bwrit/s平均每秒从高速缓存存储区写入磁盘的物理块(512字节)数lwrit/s每秒平均对高速缓存存储区进行的逻辑写入数%wcache在高速缓存存储区中找到的逻辑写入的分数(100%减去bwrit/s与lwrit/s之比)pread/s每秒平均使用字符设备接口的物理读取数pwrit/s每秒平均使用字符设备接口的物理写入请求数最重要的项是高速缓存命中率%rcache和%wcache.
这两项用于度量系统缓冲的有效性.
如果%rcache低于90%或者%wcache低于65%,则可通过增加缓冲区空间来改善性能.
例3-3检查缓冲区活动(sar-b)下列sar-b命令输出示例显示%rcache和%wcache缓冲区未引起速率下降.
所有数据都在可接受的限制范围内.
$sar-bSunOSt2k-brm-245.
10Generic_144500-10sun4v.
.
.
00:00:04bread/slread/s%rcachebwrit/slwrit/s%wcachepread/spwrit/s01:00:000010000940002:00:010010000940003:00:000010000920004:00:000110001940005:00:000010000930006:00:000010000930007:00:0000100009300监视系统活动54在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月08:00:000010000930008:20:000110001940008:40:010110001930009:00:000110001930009:20:000110001930009:40:000210001890010:00:000910005920010:20:000010000680010:40:00019801700011:00:0001100017500Average01100019100检查系统调用统计信息(sar-c)使用sar-c命令可显示系统调用统计信息.
$sar-c00:00:00scall/ssread/sswrit/sfork/sexec/srchar/swchar/s01:00:0038220.
000.
00149120以下列表介绍了-c选项报告的系统调用类别.
通常,读取和写入占系统调用总数的一半.
但是,该百分比会因系统所执行的活动而产生极大的变化.
scall/s每秒中所有类型的系统调用数,在具有4到6位用户的系统中,通常每秒大约有30个系统调用.
sread/s每秒的read系统调用数.
swrit/s每秒的write系统调用数.
fork/s每秒的fork系统调用数,在具有4到6位用户的系统中,每秒中大约有0.
5个该系统调用.
如果正在运行Shell脚本,此数字会增加.
exec/s每秒的exec系统调用数.
如果exec/s除以fork/s的结果大于3,请确定是否存在无效的PATH变量.
rchar/s每秒由read系统调用传送的字符数(字节).
wchar/s每秒由write系统调用传送的字符数(字节).
例3-4检查系统调用统计信息(sar-c)以下示例显示sar-c命令的输出.
$sar-c监视系统活动第3章监视系统性能55SunOSbalmy5.
10Generic_144500-10sun4v.
.
.
00:00:04scall/ssread/sswrit/sfork/sexec/srchar/swchar/s01:00:00891490.
010.
002906239402:00:01891490.
010.
002905239303:00:00891490.
010.
002908239304:00:00901490.
010.
002912239305:00:00891490.
010.
002905239306:00:00891490.
010.
002905239307:00:00891490.
010.
002905239308:00:00891490.
010.
002906239308:20:00901490.
010.
012914239508:40:01901490.
010.
002914239609:00:00901490.
010.
012915239609:20:00901490.
010.
012915239609:40:008802071560.
080.
0826671929010:00:0020205303220.
140.
13576753639310:20:00853129750.
020.
0110500859410:40:0020615244500.
080.
0857921756707211:00:0016584043500.
070.
0611529161144203Average30266490.
020.
015784255544检查磁盘活动(sar-d)使用sar-d命令可显示磁盘活动统计信息.
$sar-d00:00:00device%busyavquer+w/sblks/savwaitavserv以下列表介绍了-d选项报告的磁盘设备活动.
device监视的磁盘设备的名称.
%busy设备忙于为传送请求提供服务的时间份额.
avque设备忙于为传送请求提供服务期间的平均请求数.
r+w/s每秒对设备进行的读取和写入传送数.
blks/s每秒传送给设备的512字节块的数量.
avwait传送请求在队列中等待的平均时间(毫秒).
仅当队列被占用时才测量此时间.
avserv设备完成传送请求所需的平均时间(毫秒).
对于磁盘而言,此值包括查找时间、旋转延迟时间和数据传送时间.
监视系统活动56在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月例3-5检查磁盘活动此缩写示例演示了sar-d命令的输出.
$sar-dSunOSbalmy5.
10Generic_144500-10sun4v.
.
.
12:36:32device%busyavquer+w/sblks/savwaitavserv12:40:01dad1150.
72639918.
110.
0dad1,a150.
72639818.
110.
0dad1,b00.
0011.
03.
0dad1,c00.
0000.
00.
0dad1,h00.
0000.
06.
0fd000.
0000.
00.
0nfs100.
0000.
00.
0nfs210.
01120.
013.
2nfs300.
0020.
01.
9nfs400.
0000.
07.
0nfs500.
0000.
057.
1nfs610.
061254.
33.
2nfs700.
0000.
06.
0sd100.
0000.
05.
4ohci0,bu00.
0000.
00.
0ohci0,ct00.
0000.
00.
0ohci0,in00.
0700.
00.
0ohci0,is00.
0000.
00.
0ohci0,to00.
0700.
00.
0请注意,在队列不为空时测量队列长度和等待时间.
当%busy很小时,如果队列和服务时间很大,则可能表示系统进行周期性的努力,以确保将警报块快速写入磁盘.

检查页出和内存(sar-g)使用sar-g命令可显示平均页出和内存释放活动.
$sar-g00:00:00pgout/sppgout/spgfree/spgscan/s%ufs_ipf01:00:000.
000.
000.
000.
000.
00sar-g命令的输出可以明确指示是否需要更多内存.
使用ps-elf命令显示page守护程序使用的周期数.
如果周期数很大,并且pgfree/s和pgscan/s字段的值也很大,则表明内存不足.
sar-g命令还可表明是否回收inode的速率过快而引起可重用页丢失.
以下列表介绍了-g选项的输出.
pgout/s每秒的页出请求数.
监视系统活动第3章监视系统性能57ppgout/s每秒调出的页的实际数量.
单个页出请求可能涉及多个页的调出.
pgfree/s每秒放置在可用列表中的页数.
pgscan/spage守护程序每秒扫描的页数.
如果此值很大,则表明page守护程序花费大量时间来检查可用内存.
此情况暗示,可能需要更多内存.
%ufs_ipf具有关联的可重用页的iget从可用列表中取消的ufsinode的百分比.
这些页面被刷新,并且不能由进程回收.
因此,此字段表示具有页面刷新的igets的百分比.
如果该值很大,则表明inode的可用列表页面密集,并且可能需要增加ufsinode的数量.
例3-6检查页出和内存(sar-g)以下示例显示sar-g命令的输出.
$sar-gSunOSbalmy5.
10Generic_144500-10sun4v.
.
.
00:00:00pgout/sppgout/spgfree/spgscan/s%ufs_ipf01:00:000.
000.
000.
000.
000.
0002:00:000.
010.
010.
010.
000.
0003:00:000.
000.
000.
000.
000.
0004:00:000.
000.
000.
000.
000.
0005:00:000.
000.
000.
000.
000.
0006:00:000.
000.
000.
000.
000.
0007:00:000.
000.
000.
000.
000.
0008:00:000.
000.
000.
000.
000.
0008:20:010.
000.
000.
000.
000.
0008:40:000.
000.
000.
000.
000.
0009:00:000.
000.
000.
000.
000.
0009:20:010.
050.
521.
6210.
160.
0009:40:010.
030.
441.
474.
770.
0010:00:020.
132.
004.
3812.
280.
0010:20:030.
374.
6812.
2633.
800.
00Average0.
020.
250.
641.
970.
00检查内核内存分配内核内存分配(KernelMemoryAllocation,KMA)允许内核子系统根据需要分配和释放内存.
KMA并不是静态分配在峰值载荷下可能需要的最大内存量,而是将内存请求划分为三个类别:小型(少于256字节)监视系统活动58在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月大型(512字节至4千字节)超大型(大于4千字节)KMA保留两个内存池,以满足小型和大型请求.
超大型请求则通过从系统页面分配器中分配内存来满足.
如果您所检查的系统用来编写使用KMA资源的驱动程序或STREAMS,则sar-k命令可能很有用.
.
使用KMA资源但不一定在退出前返回资源的所有驱动程序或模块都可能产生内存泄漏.
内存泄漏会导致KMA分配的内存量随事件而增加.
因此,如果sar-k命令的alloc字段随时间稳定增加,则可能存在内存泄漏.
表明存在内存泄漏的另一种情况是请求失败.
如果出现此问题,内存泄漏很可能导致KMA无法保留和分配内存.
如果似乎存在内存泄漏,则应检查可能从KMA请求内存但未返回内存的所有驱动程序或STREAMS.
检查内核内存分配(sar-k)使用sar-k命令可报告内核内存分配器(KernelMemoryAllocator,KMA)的活动.
$sar-k00:00:00sml_memallocfaillg_memallocfailovsz_allocfail01:00:0025231361866512018939904147623640360448002:00:02252313618617240189399041477874803604480以下列表介绍了-k选项的输出.
sml_memKMA在小型内存请求池中可用的内存量(字节).
在此池中,小型请求小于256字节.
allocKMA已从其小型内存请求池向小型内存请求分配的内存量(字节).
fail请求少量内存并失败的请求数.
lg_memKMA在大型内存请求池中可用的内存量(字节).
在此池中,大型请求介于512字节到4千字节之间.
allocKMA已从其大型内存请求池向大型内存请求分配的内存量(字节).
fail请求大量内存并失败的请求数.
ovsz_alloc为大于4千字节的超大型请求分配的内存量.
这些请求可通过页面分配器来满足.
因此,不存在池.
fail因请求超大量内存而失败的请求数.
监视系统活动第3章监视系统性能59例3-7检查内核内存分配(sar-k)以下示例显示sar-k输出的缩写示例.
$sar-kSunOSbalmy5.
10Generic_144500-10sun4v.
.
.
00:00:04sml_memallocfaillg_memallocfailovsz_allocfail01:00:0061197444852865060243968543348081569666560002:00:0161197444853057060243968543360881569666560003:00:0061197444853297060243968543357601569666560004:00:0061197444857673060252160543752801569666560005:00:0061197444858097060252160543762401569666560006:00:0061197444858289060252160543756081569666560007:00:0061197444858793060252160544424241569666560008:00:0061197444858985060252160544745521569666560008:20:0061197444858169060252160543774001569666560008:40:0161197444857345060252160543768801569666560009:00:0061197444859433060252160545397521569666560009:20:0061197444858633060252160544109201569666560009:40:0061279365262064060530688556198161569666560010:00:0065457285823137062996480583911361569666560010:20:0065457285758997062996480579074001569666560010:40:00673414460357590643891205974306415610493952011:00:006996288639487206543769660935936156104939520Average625804451505560611383405560900415697639000检查进程间通信(sar-m)使用sar-m命令可以报告进程间通信活动.
$sar-m00:00:00msg/ssema/s01:00:000.
000.
00除非运行使用消息或信号的应用程序,否则这些数字通常都为零(0.
00).
-m选项的输出如下所示:msg/s每秒的消息操作(发送和接收)数sema/s每秒的信号操作数以下缩写示例显示sar-m命令的输出.
$sar-mSunOSbalmy5.
10Generic_144500-10sun4v.
.
.
00:00:00msg/ssema/s监视系统活动60在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月01:00:000.
000.
0002:00:020.
000.
0003:00:000.
000.
0004:00:000.
000.
0005:00:010.
000.
0006:00:000.
000.
00Average0.
000.
00检查页入活动(sar-p)使用sar-p命令可报告页入活动,其中包括保护和转换错误.
$sar-p00:00:00atch/spgin/sppgin/spflt/svflt/sslock/s01:00:000.
070.
000.
000.
210.
390.
00以下列表介绍了通过-p选项报告的统计信息.
atch/s每秒通过回收当前在内存中的页来满足的缺页数(每秒附加数).
例如从可用列表中回收无效的页,以及共享其他进程当前正在使用的文本页.
例如,两个或多个进程同时访问同一程序文本.
pgin/s文件系统每秒接收页入请求的次数.
ppgin/s每秒调进的页数.
单个页入请求(例如软件锁定请求,请参见slock/s)或块大小很大时可能涉及多个页的调进.
pflt/s因保护错误引起的缺页数.
保护错误实例表明非法访问页面和写复制.
通常,此数目主要包含写复制.
vflt/s每秒的地址转换缺页数.
这些错误称为有效性错误,当给定虚拟地址的有效进程表项不存在时,会发生有效性错误.
slock/s每秒内由要求物理I/O的软件锁定请求引起的错误数.
从磁盘向内存传送数据时,就会出现软件锁定请求.
系统锁定了要接收数据的页,因此其他进程无法请求和使用该页.
例3-8检查页入活动(sar-p)以下示例显示sar-p命令的输出.
$sar-pSunOSbalmy5.
10Generic_144500-10sun4v.
.
.
00:00:04atch/spgin/sppgin/spflt/svflt/sslock/s01:00:000.
090.
000.
000.
782.
020.
00监视系统活动第3章监视系统性能6102:00:010.
080.
000.
000.
782.
020.
0003:00:000.
090.
000.
000.
812.
070.
0004:00:000.
110.
010.
010.
862.
180.
0005:00:000.
080.
000.
000.
782.
020.
0006:00:000.
090.
000.
000.
782.
020.
0007:00:000.
080.
000.
000.
782.
020.
0008:00:000.
090.
000.
000.
782.
020.
0008:20:000.
110.
000.
000.
872.
240.
0008:40:010.
130.
000.
000.
902.
290.
0009:00:000.
110.
000.
000.
882.
240.
0009:20:000.
100.
000.
000.
882.
240.
0009:40:002.
911.
802.
384.
6117.
620.
0010:00:002.
742.
033.
088.
1721.
760.
0010:20:000.
160.
040.
041.
922.
960.
0010:40:002.
102.
503.
426.
6216.
510.
0011:00:003.
360.
871.
353.
9215.
120.
00Average0.
420.
220.
311.
454.
000.
00检查队列活动(sar-q)使用sar-q命令可报告以下信息:队列被占用时的平均队列长度.
队列处于占用状态的时间百分比.
$sar-q00:00:00runq-sz%runoccswpq-sz%swpocc-q选项的输出如下所示.
runq-sz内存中等待CPU以便运行的内核线程数.
通常,此值应小于2.
如果此值持续偏高,则表明系统可能计算密集(CPU-bound).
%runocc占用分发队列的时间百分比.
swpq-sz换出进程的平均数量.
%swpocc进程处于换出状态的时间百分比.
例3-9检查队列活动以下示例显示sar-q命令的输出.
如果%runocc值较大(大于90%)并且runq-sz值大于2,则表明CPU负载较大,并且响应变慢.
在此情况下,可能需要提供附加的CPU容量,才能获得可接受的系统响应速度.
#sar-qSunOSbalmy5.
10Generic_144500-10sun4v.
.
.
监视系统活动62在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月00:00:00runq-sz%runoccswpq-sz%swpocc01:00:001.
070.
0002:00:001.
070.
0003:00:001.
070.
0004:00:001.
070.
0005:00:001.
060.
0006:00:001.
070.
00Average1.
070.
00检查未使用的内存(sar-r)使用sar-r命令可报告当前未使用的内存页数和交换文件磁盘块数.
$sar-r00:00:00freememfreeswap01:00:002135401922-r选项的输出如下所示:freemem在该命令采样的时间间隔内可供用户进程使用的平均内存页数.
页面大小与计算机有关.
freeswap可用于页交换的512字节磁盘块数.
例3-10检查未使用的内存(sar-r)以下示例显示sar-r命令的输出.
$sar-rSunOSbalmy5.
10Generic_144500-10sun4v.
.
.
00:00:04freememfreeswap01:00:0044717171506202:00:0144733171549603:00:0044715171474604:00:0044751171540305:00:0044784171474306:00:0044794171518607:00:0044793171515908:00:0044786171491408:20:0044805171557608:40:0144797171534709:00:0044761171394809:20:0044802171547809:40:0041770168223910:00:0035401161083310:20:0034295159914110:40:00339431598425监视系统活动第3章监视系统性能6311:00:00305001561959Average433121699242检查CPU使用率(sar-u)使用sar-u命令可显示CPU使用率统计信息.
$sar-u00:00:00%usr%sys%wio%idle01:00:00000100没有任何选项的sar命令与sar-u命令等效.
在任意给定时刻,处理器都会处于繁忙或空闲状态.
繁忙时,处理器可能处于用户模式或系统模式.
空闲时,处理器可能在等待I/O完成,或没有需要执行的操作.
-u选项的输出如下所示:%usr处理器处于用户模式的时间百分比%sys处理器处于系统模式的时间百分比%wio处理器空闲并等待I/O完成的时间百分比%idle处理器空闲并且未等待I/O的时间百分比%wio值越大,通常表示磁盘速率变慢.
例3-11检查CPU使用率(sar-u)以下示例显示sar-u命令的输出.
$sar-u00:00:04%usr%sys%wio%idle01:00:0000010002:00:0100010003:00:0000010004:00:0000010005:00:0000010006:00:0000010007:00:0000010008:00:0000010008:20:000009908:40:010009909:00:000009909:20:000009909:40:004109510:00:0042094监视系统活动64在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月10:20:001109810:40:0018307911:00:00253072Average20098检查系统表状态(sar-v)使用sar-v命令可报告进程表、inode表、文件表和共享内存记录表的状态.
$sar-v00:00:00proc-szovinod-szovfile-szovlock-sz01:00:0043/92202984/42360322/32200/0以下列表介绍了-v选项的输出.
proc-sz内核中当前正在使用或已分配的进程项(proc结构)数.
inod-sz与内核中分配的最大inode数相比,内存中的inode总数.
此数字不是严格的高水位标记.
该数字可以溢出.
file-sz开放式文件系统表的大小.
由于文件表的空间是动态分配的,因此sz被给定为0.
ov在每个表的采样点之间发生的溢出.
lock-sz内核中目前正在使用或已经分配的共享内存记录表项的数量.
由于共享内存记录表的空间是动态分配的,因此sz被给定为0.
例3-12检查系统表状态(sar-v)以下缩写示例显示sar-v命令的输出.
此示例表明,所有表都足够大,因此没有溢出.
这些表都基于物理内存量进行动态分配.
$sar-v00:00:04proc-szovinod-szovfile-szovlock-sz01:00:0069/801003476/3470300/000/002:00:0169/801003476/3470300/000/003:00:0069/801003476/3470300/000/004:00:0069/801003494/3470300/000/005:00:0069/801003494/3470300/000/006:00:0069/801003494/3470300/000/007:00:0069/801003494/3470300/000/008:00:0069/801003494/3470300/000/008:20:0069/801003494/3470300/000/008:40:0169/801003494/3470300/000/009:00:0069/801003494/3470300/000/0监视系统活动第3章监视系统性能6509:20:0069/801003494/3470300/000/009:40:0074/801003494/3470300/000/010:00:0075/801004918/3470300/000/010:20:0072/801004918/3470300/000/010:40:0071/801005018/3470300/000/011:00:0077/801005018/3470300/000/0检查交换活动(sar-w)使用sar-w命令可报告交换和切换活动.
$sar-w00:00:00swpin/sbswin/sswpot/sbswot/spswch/s01:00:000.
000.
00.
000.
022以下列表介绍了sar-w命令输出的目标值和观测值.
swpin/s每秒传入内存的LWP数.
bswin/s每秒为换入传送的块数.
/*(float)PGTOBLK(xx->cvmi.
pgswapin)/sec_diff*/.
swpot/s每秒换出内存的平均进程数.
如果该数字大于1,则可能需要增大内存.
bswot/s每秒为换出传送的块数.
pswch/s每秒的内核线程切换数.
注-所有进程换入都包括进程初始化.
例3-13检查交换活动(sar-w)以下示例显示sar-w命令的输出.
$sar-w00:00:04swpin/sbswin/sswpot/sbswot/spswch/s01:00:000.
000.
00.
000.
013202:00:010.
000.
00.
000.
013303:00:000.
000.
00.
000.
013304:00:000.
000.
00.
000.
013405:00:000.
000.
00.
000.
013306:00:000.
000.
00.
000.
013307:00:000.
000.
00.
000.
013208:00:000.
000.
00.
000.
013108:20:000.
000.
00.
000.
013308:40:010.
000.
00.
000.
0132监视系统活动66在OracleSolaris11.
2中管理系统信息、进程和性能2014年9月09:00:000.
000.
00.
000.
013209:20:000.
000.
00.
000.
013209:40:000.
000.
00.
000.
033510:00:000.
000.
00.
000.
060110:20:000.
000.
00.
000.
035310:40:000.
000.
00.
000.
074711:00:000.
000.
00.
000.
0804Average0.
000.
00.
000.
0198检查终端活动(sar-y)使用sar-y命令可监视终端设备活动.
$sar-y00:00:00rawch/scanch/soutch/srcvin/sxmtin/smdmin/s01:00:00000000如果有多个终端I/O,则可使用此报告来确定是否存在任何错误行.
以下列表中定义了记录的活动.
rawch/s每秒输入字符数(原始队列)canch/scanon(规则队列)每秒处理的输入字符数outch/s每秒输出字符数(输出队列)rcvin/s每秒接收器硬件中断次数xmtin/s每秒传送器硬件中断次数mdmin/s每秒调制解调器中断次数每秒调制解调器中断次数(mdmin/s)应接近于零.
每秒的接收和传送中断次数(rcvin/s和xmtin/s)应分别小于或等于传入或传出字符数.
否则,请检查是否存在错误行.

傲游主机38.4元起,韩国CN2/荷兰VPS全场8折vps香港高防

傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...

阿里云香港 16核32G 20M 999元/月

阿里云香港配置图提速啦是成立于2012年的十分老牌的一个商家这次给大家评测的是 阿里云香港 16核32G 20M 这款产品,单单说价格上就是十分的离谱原价8631元/月的现价只要 999元 而且还有个8折循环优惠。废话不多说直接进入正题。优惠时间 2021年8月20日-2021年9月20日 优惠码 wn789 8折优惠阿里云香港BGP专线 16核32G 10M带宽 优惠购买 399元购买链接阿里云...

LOCVPS:美国XEN架构VPS七折,全场八折,日本/新加坡XEN架构月付29.6元起

LOCVPS发来了针对XEN架构VPS的促销方案,其中美国洛杉矶机房7折,其余日本/新加坡/中国香港等机房全部8折,优惠后日本/新加坡机房XEN VPS月付仅29.6元起。这是成立较久的一家国人VPS服务商,目前提供美国洛杉矶(MC/C3)、和中国香港(邦联、沙田电信、大埔)、日本(东京、大阪)、新加坡、德国和荷兰等机房VPS主机,基于XEN或者KVM虚拟架构,均选择国内访问线路不错的机房,适合建...

提示虚拟内存不足为你推荐
域名注册商中国十大域名注册商域名代理我想申请域名代理。直接在国家域名管理中心申请,应该有什么一些手续?vps虚拟主机请问VPS和虚拟主机有什么不一样,为什么VPS贵那么多。广告的别来!国外空间租用国内和海外空间 域名 服务器托管 租用免费虚拟主机申请找免费好用的虚拟主机申请地址,网站空间域名网站制作 域名和空间台湾vps台湾服务器租用托管那里好域名备案域名怎么备案深圳虚拟主机深圳有哪些比较有名气的网络推广公司新加坡虚拟主机香港云主机和虚拟主机相比较那个好?
美国域名注册 网通服务器租用 免费动态域名 virpus 韩国加速器 cpanel空间 有益网络 日本bb瘦 metalink 东莞服务器 万网空间购买 Updog 厦门电信 腾讯总部在哪 免费ftp 新加坡空间 深圳域名 登陆qq空间 阵亡将士纪念日 zcloud 更多