学海无涯 个人blog lnmps.com 新站
分类: LINUX
2013-04-03 20:00:59
原文地址:solaris Cpu /Linux下如何查看cpu 作者:icybay
1.CPU数量
hp-unix
ioscan -C processor | grep processor | wc -l
Solaispsrinfo -v | grep Status of processor |wc -l
linuxcat /proc/cpuinfo/grep processor|wc -l
AIX
lsdev -C | grep -i processor|wc -l
2) Memery数量
solaris
prtconf | grep -i mem
AIXroot>lsdev -C |grep mem
memo Available 00-00 Memory
可见mem0是该aix设备上的内存设备名称,现在使用lsattr -EI 来查看该服务器上的内存数量
root>lsattr -EI memo
LINUXfree
HP-UNIXswapinfo -tm///////////////////////////////////////
查看linux cpu信息
#dmidecode
或
#cat /proc/cpuinfo
查看linux 内存信息
#cat /proc/meminfo
或
#top
#free
查看linux硬盘大小
#df -hl
或
#fdisk
Solaris下查看CPU、内存等信息可以使用下边的命令:
#prtdiag -v
查看硬盘信息为:
#iostat -E
内存
1、solaris
solaris通常使用vmstat命令来查看系统的虚拟内存子系统的状态信息。vmstat可显示swap,物理内存,分页错误,磁盘信息统计和错误等信息.
bash-3.00$ vmstat 2 3
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr f0 s0 s1 s2 in sy cs us sy id
0 0 0 730888 228436 43 196 62 1 1 0 38 0 6 0 0 313 557 343 3 10 87
0 0 0 731096 221556 3 25 0 0 0 0 0 0 0 0 0 341 111 208 0 3 97
0 0 0 731092 221548 0 0 0 0 0 0 0 0 0 0 0 334 90 205 8 3 89
【注意】
swap为空余的swap空间(此处的swap为总的swap空间而不仅仅指swap分片的空间),free为空余的可用物理内存
列出用于交换空间的硬盘分片或文件的使用情况:
bash-3.00# swap -l
交换文件 dev swaplo blocks free
/dev/dsk/c1t0d0s3 54,3 8 1048568 1048568
列出交换空间的总体使用情况:
bash-3.00# swap -s
总数:分配了 113024k 字节 + 保留 15340k = 已使用 128364k,730172k 可用
查看内存分页的汇总情况
bash-3.00# echo ::memstat | mdb -k
Page Summary Pages MB %Tot
------------ ---------------- ---------------- ----
Kernel 27734 108 22%
Anon 29908 116 23%
Exec and libs 5862 22 5%
Page cache 12306 48 10%
Free (cachelist) 18780 73 15%
Free (freelist) 34320 134 27%
Total 128910 503
此外还可以使用kstat查看内存的详细信息(以每个内存模块为单位)
$ kstat -m vmem | more
module: vmem instance: 1
name: heap class: vmem
alloc 6254
contains 0
contains_search 0
crtime 0
fail 0
free 1200
lookup 113
mem_import 0
mem_inuse 86376448
mem_total 1646524366848
populate_fail 0
populate_wait 0
search 4381
snaptime 2441.858424006
vmem_source 0
wait 0
......
网络负荷监控
1、solaris
最常见的都是用netstat命令,且redhat和solaris的常见使用方法基本一致。netstat命令可用来查看路由表、当前活跃的网络连接、各种网络数据结构、流内存统计,接口状态、DHCP等信息。常见的使用方式有:
netstat -rn 看路由
netstat -in 看流量统计
netstat -an 看连接信息
netstat -pn 看ARP解析表(MAC-IP映射表)
此外,solaris可以使用kstat命令查看网络信息
bash-3.00$ kstat -m e1000g | more 模块(-m)可填网卡驱动类型,比如e1000g,e1000g0,bge,hme...
module: e1000g instance: 0
name: e1000g0 class: net
brdcstrcv 0
brdcstxmt 0
collisions 0
crtime 43.023212228
ierrors 0
ifspeed 1000000000
ipackets 3421
ipackets64 3421
ps -eo pid,pcpu,args |sort +1n
solaris下查看进程的cpu占用率 收藏
solaris下查看某进程的资源占用率及其它
1. # ps -eo pid,pcpu,args | sort +1n
该命令输出当前系统进程的pid, cpu占用率及命令描述,并以pcpu来排序(尝试过,没有成功,据说在RedHat上可行的。)
2. top -p
3. prstat -p 4. 查看IO情况 iostat 查看详细信息 /usr/platform/sun4u/sbin/prtdiag -v 6. sar sar -u 3 20 若系统明显变慢,用此命令检查cpu占用率 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bonny95/archive/2009/09/15/4555216.aspx
不同的系统top的设置不尽相同,因此使用时需要注意。
prstat 检查系统中进程占用CPU,内存等情况。可以代替top,不过好像solaris5.8之后才有,5.7上就没有。
iostat -x -I 1 若系统明显变慢,也可用此命令检查磁盘I/O情况
5. 查看CPU 可以用 psrinfo -v
sar –r 3 20 用此命令检查内存使用情况
1、什么是进程?
进程:可并发执行的程序在一定数据集合上的运行过程。进程即是资源分配的基本单位,也是调度和分派的基本单位。 2、UNIX操作系统进程调度算法: 多级反馈调度队列算法。 3、进程状态:创建、初始、就绪(活动、静止)、执行、阻塞(活动、静止)、结束。 4、进程监控命令: ps 命令和进程工具/usr/proc/bin下的工具级。 可以将ps和grep命令组合使用来搜索特定的信息。 5、/usr/proc/bin的命令介绍: pstop 停止进程 prun pid 重新启动进程 ptime pid 使用微状态计算进程时间 pwait pid 等待指定的进程终止. pcred pid 显示可信度 pfiles pid 显示已打开文件的fstat 和fcntl 信息 pflags pid 显示每个lwp 的/proc 跟踪标志,等待和持有信号量以及其他状 态信息 pldd pid 显示链接到每个进程的动态链接库 pmap pid 显示地址映射空间 psig pid 显示信号操作 pstack pid 显示每个lwp 的十六进制与符号堆跟踪 ptree pid 显示包含指定PID 的进程树 pwdx oid 显示当前工作目录 6、ps命令格式: ps [ -aAdeflcjLPy ] [ -o format ] [ -t termlist ] [ -u userlist ] [ -U userlist ] [ -G grouplist ] [ -p proclist ] [ -g pgrplist ] [ -s sidlist ] 7、常用的参数: -e 输出所有进程报告 -f 在第一栏显示进程所有者的名字(不是UID)。该选项关闭-l、–t、–s 和–r 选项,打开-a 选项。 -l 产生一个长的输出报告,只是不包含STIME 字段 8、ps -el的相关输出参数解释: bash-2.05$ ps -el F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 19 T 0 0 0 0 0 SY ? 0 ? 0:16 sched 8 S 0 1 0 0 40 20 ? 151 ? ? 0:00 init 19 S 0 2 0 0 0 SY ? 0 ? ? 0:00 pageout 19 S 0 3 0 0 0 SY ? 0 ? ? 0:30 fsflush 8 S 0 377 1 0 40 20 ? 223 ? ? 0:00 sac 8 S 0 378 1 0 40 20 ? 224 ? console 0:00 ttymon 8 S 0 131 1 0 40 20 ? 289 ? ? 0:00 rpcbind F 十六进制标志,它们加起来表示进程的当前状态。如下所述: 00 进程终止,而且它们在进程表中的空间已释放。 01 系统进程,长驻内存 02 进程被父进程跟踪 04 进程被父进程跟踪而且已被停止 08 该进程无法被信号量唤醒 10 该进程当前在内存中,而且被锁定直到一个事件完成 20 进程不能被交换出 S 进程当前状态,由以下字母之一显示: O 当前正在处理器上运行 S 睡眠;等待I/O事件完成 R 运行结束 I 空闲;进程被创建 Z 僵死。进程已终止 T 由于父进程跟踪而停止 X 等待更多的内存 UID 进程所有者的用户ID PID 进程ID PPID 父进程ID C 进程的CPU使用情况(即进程占CPU时间的百分比) PRI 进程优先权方案。较大的数表示较低的优先权 NI 进程的nice值,该值与优先权方案相关联。使一个进程“nicer”意指降低该进程的优先权,以使它不会用尽CPU的时间 SZ 进程请求的虚拟内存量。这是该系统对内存需求的一个好的指标。 TTY 启动进程(或者父进程)的终端。带问号的进程无控制终端(通常为系统进程) TIME 自进程启动以来占CPU时间总量 COMD 产生进程的命令 9、使用ps报告。 查找属于一个用户的许多相同的工作。Kill命令终止进程。 ps -U username 查找TIME字段中占用了很多CPU时间的进程。这样的进程可能在死循环。ps -e 查找C字段,找出不重要但占用了大量CPU时间的进程。如果该进程获取过多内存,删除该进程。如果许多进程占用了大量内存,则系统可能需要增加内存。ps -el 注意使用越来越多CPU时间的失控进程。可以通过使用-f选项查看进程启动时间(STIME)以及通过查看TIME字段中的CPU时间总量来检测失控进程。 ps -f 10、删除进程。 在正常途径无法结束时才使用删除命令。 #kill - signal pid signal:57 signal: 2 中断 3 退出 4 非法指令 5 跟踪中断 6 Abort 7 EMT指令(Emulation竞争trap) 8 浮点格式的异常情况 9 kill(不能被捕获或忽略) 10 通道错误 11不合法的内存区段 12 错误系统调用 13 写入不可读的连通管道 14 alarm clock 15 软件结束信号 16 用户定义的信号1 17用户定义的信号2 18 子进程状态被改变 19 电源坏掉 20窗口(Window)的大小被改变 21Urgent(紧急的) Socket Condition 22 Pollable(可查询的)event 23 停止 24 由用户终止 25 继续执行 26 停止终端输入 27 停止终端输出 28 virtual Timer expired 29 Profiling time expired 30 超过CPU时间 31 超过文件大小限制 32 Socket I/O possible 有时即使用kill命令,但进程仍未被删除。最有可能的三种情况: 进程在退出前等待设备完成操作。 进程在等待由于NFS故障而导致的无法使用的资源。要删除此类进程,输入kill -quit PID 进程为僵死进程,在ps报告的defunct的消息中显示。僵死进程是释放了所有资源,但未接受到父进程确认的进程。只有收到确认才删除进程在进程表中的入口。下一次引导时僵死进程会被清除。僵死进程不影响系统性能,不需要删除。 11、优先权控制命 使用priocntl命令可以: 显示或设置指定进程的调度参 显示系统调度程序的当前配置信息 执行带有指定调度参数的命令 每个进程都有不同的级,每级分配有各自不同的调度策略。 系统可能配置的级包括: 系统(SYS) 交互(IA) 实时(RT) 分式共享(TS) 对于分式共享级,用户提供的优先权范围为:-20~+20。一个 分时共享进程的优先权(用户模式优先权)是从父进程继承 而来。系统在分时调度表中查找用户模式优先权,加入任何 nice值或这者priocntl优先权值(用户提供),保证创建的全 局优先权在0~59之间。 在默认配置中,一个可运行的实时进程在任何其它进程之前运行。实时进程使用不当会导致系统性能急剧下降。 1. 显示进程级的基本信息(进程级或系统调度参数): 输入priocntl -l并回车 2. 显示进程的全局优先级 使用ps -ecl命令显示进程的全局优先权。全局优先权在PRI栏列出 3、指定进程的优先级: 输入priocntl -e -c class -m user -limit -p priority command - name回车 -e 执行命令 -c 指定级(默认选项是TS(分时共享)或RI(实时) -m 用户限制选项,指定-p选项提升或降低优先权的最大量。 -p 允许指定用户提供的优先权,范围为-20~+20。 4.更改分时共享进程的调度参数 依照以下步骤更改分时共享进程的调度参数: 1)成为超级用户。 2)输入priocntl -s -m user -limit [-p priority] -i id type id -list回车。 -s允许设置用户优先权范围的上限 -m 用户限制选项,指定-p选项提升或降低优先权的最大量。 -p优先权命令名选项,允许指定优先权。 -I id -type和id -list选项使用id -type和id -list的组合标识进程, id - type指定id类型,如PID或UID。 3)输入ps -ecl|grep id -list回车。 4)检查PRI栏的输出,验证已经成功地更改了进程状态。 % priocntl -s -c RT -t 500 -p 20 myprog % ps -ecl|grep myprog 5. 更改进程 依照以下步骤更改进程级: 1)成为超级用户。 2)输入priocntl -s -c class -i id type id -list回车。 -s允许设置用户优先权范围的上限并更改优先权 -c 指定想更改的进程级为TS(分时共享)级或RI(实时)级 -I id -type和id -list选项使用id -type和id -list的组合标识进程, id -type指定id 类型,如PID或UID。 3)输入ps -ecl|grep id -list回车。 4)检查PRI栏的输出,验证已经成功地更改了进程状态。 注意:必须是超级用户或者在实时shell中操作,更改进程级为非实时级或者实时级。 6、更改进程优先级 使用nice命令可以提高或降低一个命令或进程的优先权。 不带参数使用该命令则默认nice值增4个单位,使进程优先 权降低。 注意:必须是超级用户才能。 /usr/bin/nice command -name(默认,进程的优先权降低4个单位) /usr/bin/nice +10 command -name(进程的优先权降低10个单位) /usr/bin/nice -10 command -name(进程的优先权增加10个单位) /usr/bin/nice - -10 command -name(nice 值减少10个单位,提高一个命令的优先权)
-bash-3.00# cd /proc -bash-3.00# for i in * > do > echo ------ process $i --------- > pfiles $i | grep -i "port: 32805" > done ------ process 0 --------- ------ process 1 --------- ------ process 1025 --------- ------ process 1035 --------- ------ process 1037 --------- ------ process 1038 --------- ------ process 1039 --------- ------ process 1040 --------- ------ process 1041 --------- ------ process 1166 --------- ------ process 123 --------- ------ process 12535 --------- ------ process 12536 --------- ------ process 134 --------- ------ process 141 --------- ------ process 142 --------- ------ process 148 --------- ------ process 164 --------- ------ process 1679 --------- ------ process 1807 --------- ------ process 1817 --------- ------ process 18459 --------- ------ process 18462 --------- ------ process 18464 --------- ------ process 18612 --------- ------ process 18613 --------- ------ process 18615 --------- ------ process 18639 --------- ------ process 18653 --------- ------ process 18680 --------- ------ process 2 --------- ------ process 226 --------- ------ process 290 --------- ------ process 3 --------- ------ process 302 --------- ------ process 303 --------- ------ process 311 --------- ------ process 334 --------- ------ process 372 --------- ------ process 376 --------- ------ process 397 --------- ------ process 398 --------- ------ process 400 --------- ------ process 416 --------- ------ process 418 --------- ------ process 432 --------- ------ process 434 --------- ------ process 435 --------- ------ process 436 --------- ------ process 442 --------- ------ process 443 --------- ------ process 458 --------- ------ process 463 --------- ------ process 464 --------- ------ process 465 --------- ------ process 564 --------- ------ process 565 --------- ------ process 566 --------- ------ process 598 --------- ------ process 599 --------- ------ process 613 --------- ------ process 619 --------- ------ process 631 --------- ------ process 633 --------- ------ process 634 --------- ------ process 637 --------- ------ process 651 --------- ------ process 653 --------- ------ process 666 --------- ------ process 686 --------- ------ process 689 --------- ------ process 6929 --------- ------ process 6932 --------- ------ process 6934 --------- ------ process 6958 --------- ------ process 6959 --------- ------ process 6960 --------- ------ process 7 --------- ------ process 763 --------- ------ process 834 --------- ------ process 836 --------- ------ process 837 --------- ------ process 838 --------- ------ process 839 --------- ------ process 840 --------- ------ process 9 --------- ------ process 990 --------- ------ process 991 --------- ------ process 992 --------- peername: AF_INET 127.0.0.1 port: 32805 ------ process 993 --------- ------ process 994 --------- sockname: AF_INET 127.0.0.1 port: 32805 从以上的结果可以得知,端口32805被进程992和994所使用。可以进一步使用pfiles |
ps -e -o pid,pcpu,pmem,comm | more
PID %CPU %MEM COMMAND
0 0.0 0.0 sched
1 0.0 0.0 /etc/init
2 0.0 0.0 pageout
3 0.1 0.0 fsflush
1406 0.0 0.1 /usr/lib/saf/sac
805 0.0 0.0 /usr/lib/utmpd
620 0.0 0.1 /usr/lib/nfs/lockd
17 0.0 0.2 vxconfigd
74 0.0 0.1 /usr/lib/sysevent/syseventd
161 0.0 0.1 /sbin/vxesd
348 0.1 0.1 /usr/lib/picl/picld
80 0.0 0.0 /usr/lib/sysevent/syseventconfd
472 0.0 0.5 /opt/VRTSob/bin/vxsvc
151 0.0 0.1 devfsadmd