Linux性能监测命令示例

Linux性能监测命令示例
Linux性能监测命令示例

Linux性能命令

1、top

top命令的汇总区域显示了五个方面的系统性能信息:

1.负载:时间,登陆用户数,系统平均负载;

2.进程:运行,睡眠,停止,僵尸;

3.cpu:用户态,核心态,NICE,空闲,等待IO,中断等;

4.内存:总量,已用,空闲(系统角度),缓冲,缓存;

5.交换分区:总量,已用,空闲

任务区域默认显示:进程ID,有效用户,进程优先级,NICE值,进程使用的虚拟内存,物理内存和共享内存,进程状态,CPU占用率,内存占用率,累计CPU时间,进程命令行信息。

--top 运行中可以通过top 的内部命令对进程的显示方式进行控制。内部命令如下:

s –改变画面更新频率

l –关闭或开启第一部分第一行top 信息的表示

t –关闭或开启第一部分第二行Tasks 和第三行Cpus 信息的表示

m –关闭或开启第一部分第四行Mem 和第五行Swap 信息的表示N –以PID 的大小的顺序排列表示进程列表

P –以CPU 占用率大小的顺序排列进程列表

M –以内存占用率大小的顺序排列进程列表

h –显示帮助

n –设置在进程列表所显示进程的数量

q –退出top

--序号列名含义

a PID 进程id

b PPID 父进程id

c RUSER Real user name

d UID 进程所有者的用户id

e USER 进程所有者的用户名

f GROUP 进程所有者的组名

g TTY 启动进程的终端名。不是从终端启动的进程则显示为?

h PR 优先级

i NI nice值。负值表示高优先级,正值表示低优先级

j P 最后使用的CPU,仅在多CPU环境下有意义

k %CPU 上次更新到现在的CPU时间占用百分比

l TIME 进程使用的CPU时间总计,单位秒

m TIME+ 进程使用的CPU时间总计,单位1/100秒

n %MEM 进程使用的物理内存百分比

o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。

q RES 进程使用的、未被换出的物理内存大小,单位kb。

RES=CODE+DATA

r CODE 可执行代码占用的物理内存大小,单位kb

s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb t SHR 共享内存大小,单位kb

u nFLT 页面错误次数

v nDRT 最后一次写入到现在,被修改过的页面数。

w S 进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)

x COMMAND 命令名/命令行

y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名

z Flags 任务标志,参考sched.h

--top使用方法:

使用格式:

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

参数说明:

d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

p:通过指定监控进程ID来仅仅监控某个进程的状态。

q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

S:指定累计模式。

s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危

险。

i:使top不显示任何闲置或者僵死进程。

c:显示整个命令行而不只是显示命令名。

tbhw@fs-debian:~$ top -p 2420

--监控chrom进程状态按f 键增删字段

Tasks: 222 total, 1 running, 220 sleeping, 0 stopped, 1 zombie

%Cpu(s): 2.6 us, 0.2 sy, 0.0 ni, 97.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8073972 total, 1656360 free, 3937532 used, 2480080

buff/cache

KiB Swap: 8282108 total, 8282108 free, 0 used. 3324664 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM

TIME+ COMMAND CODE DATA

5760 tbhw 20 0 5643736 2.212g 19944 S 0.5 28.7 0:25.57 java 4 2346112

2420 tbhw 20 0 1560512 395460 123816 S 1.5 4.9 4:17.83 chrome 117508 401092

1412 tbhw 20 0 2542912 364340 83208 S 2.5 4.5 5:49.94 gnome-shell 16 367536

3059 tbhw 20 0 699732 51140 40828 S 1.0 0.6 0:29.43 gnome-terminal- 304 52404

1170 tbhw 20 0 354916 78492 47352 S 1.0 1.0 2:45.50 Xorg 2316 39924

6465 root 20 0 45248 3756 2980 R 0.5 0.0 0:00.11 top 100 1392

7 root 20 0 0 0 0 S 0.5 0.0 0:06.13 rcu_sched 0 0

top中一些字段的含义:

VIRT:virtual memory usage 虚拟内存

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等

2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存

1、进程当前使用的内存大小,但不包括swap out

2、包含其他进程的共享

3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反

4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory 共享内存

1、除了自身进程的共享内存,也包括其他进程的共享内存

2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小

3、计算某个进程所占的物理内存大小公式:RES – SHR

4、swap out后,它将会降下来

DATA

1、数据占用的内存。如果top没有显示,按f键可以显示出来。

2、真正的该程序要求的数据空间,是真正在运行中要使用的。

2、vmstat-虚拟内存统计

tbhw@fs-debian:~$ vmstat 5

mstat(VirtualMeomoryStatistics,虚拟内存统计) 是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视。

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

0 0 0 4874668 105612 1898436 0 0 148 26 150 488 4 1 92 3 0

0 0 0 4874496 105632 1898364 0 0 0 41 356 838 0 0 99 0 0

第一行显示了系统自启动以来的平均值,第二行开始显示现在正在发生的情况,接下来的行会显示每5秒间隔发生了什么,每一列的含义在头部,如下所示:

? procs:r这一列显示了多少进程在等待cpu,b列显示多少进程正在不可中断的休眠(等待IO)。

? memory:swapd列显示了多少块被换出了磁盘(页面交换),剩下的列显示了多少块是空闲的(未被使用),多少块正在被用作缓冲区,以及多少正在被用作操作系统的缓存。

? swap:显示交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)。

? io:显示了多少块从块设备读取(bi)和写出(bo),通常反映了硬盘I/O。

? system:显示每秒中断(in)和上下文切换(cs)的数量。

? cpu:显示所有的cpu时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲以及等待IO。

内存不足的表现:free memory急剧减少,回收buffer和cacher也无济于事,大量使用交换分区(swpd),页面交换(swap)频繁,读写磁盘数量(io)增多,缺页中断(in)增多,上下文切换(cs)次数增多,等待IO的进程数(b)增多,大量CPU时间用于等待IO(wa)

输出字段意义:

Procs

r: The number of processes waiting for run time.

等待运行的进程数。如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。

b: The number of processes in uninterruptible sleep.

处在非中断睡眠状态的进程数。意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等。

Memory

swpd: the amount of virtual memory used.

已使用的虚拟内存大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd不为0,并不意味物理内存吃紧,如果swapd没变化,si、so的值长期为0,这也是没有问题的

free: the amount of idle memory.

空闲的物理内存的大小

buff: the amount of memory used as buffers.

用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB

cache: the amount of memory used as cache.

用来做cache(缓存,主要用于缓存文件)的内存,单位:KB

inact: the amount of inactive memory. (-a option)

inactive memory的总量

active: the amount of active memory. (-a option)

active memroy的总量。

内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。

当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so,

如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,

这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,

但页导入操作就表明了服务器需要更多的内存了,页导入需要从SWAP

DISK上将内存段复制回RAM,导致服务器速度变慢。

3、iostat--用于报告中央处理器统计信息

iostat用于报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和CD-ROM 的输入/输出统计信息,默认显示了与vmstat相同的cpu 使用信息,使用以下命令显示扩展的设备统计:

tbhw@fs-debian:~/remember$ iostat -dx 5

Linux 4.9.0-4-amd64 (fs-debian) 2018年11月30日_x86_64_ (4 CPU)

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 2.29 6.19 18.56 3.63 536.44 96.98 57.08 0.48 21.57 10.98 75.74 3.51 7.79

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 0.00 3.40 0.00 1.40 0.00 28.00 40.00 0.02 14.29 0.00 14.29 10.86 1.52

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 0.00 3.80 0.00 8.80 0.00 96.00 21.82 0.06 6.45 0.00 6.45 2.91 2.56

第一行显示的是自系统启动以来的平均值,然后显示增量的平均值,每个设备一行。

常见linux的磁盘IO指标的缩写习惯:rq是request,r是read,w是write,qu是queue,sz是size,a是verage,tm是time,svc是service。

?rrqm/s和wrqm/s:每秒合并的读和写请求,“合并的”意味着操作系统从队列中拿出多个逻辑请求合并为一个请求到实际磁盘。

?r/s和w/s:每秒发送到设备的读和写请求数。

?rsec/s和wsec/s:每秒读和写的扇区数。

?avgrq –sz:请求的扇区数。

?avgqu –sz:在设备队列中等待的请求数。

?await:每个IO请求花费的时间。

?svctm:实际请求(服务)时间。

?%util:至少有一个活跃请求所占时间的百分比。

4—mpstat

mpstat 是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。常见用法:mpstat –P ALL interval times。

tbhw@fs-debian:~$ mpstat -P ALL 2

--显示所有CPU核,间隔2妙

Linux 4.9.0-4-amd64 (fs-debian) 2018年11月30日_x86_64_ (4 CPU)

14时03分11秒

CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle

14时03分13秒all 1.23 0.00 1.73 0.00 0.00 0.00

0.00 0.00 0.00 97.04

14时03分13秒0 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

14时03分13秒 1 0.00 0.00 0.51 0.00 0.00 0.00 0.00 0.00 0.00 99.49

14时03分13秒 2 3.70 0.00 5.56 0.00 0.00 0.00 0.00 0.00 0.00 90.74

14时03分13秒 3 0.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.49

14时03分13秒

CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle

14时03分15秒all 0.38 0.00 1.00 0.75 0.00 0.00

0.00 0.00 0.00 97.88

14时03分15秒0 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

14时03分15秒 1 0.00 0.00 0.51 1.52 0.00 0.00 0.00 0.00 0.00 97.98

14时03分15秒 2 0.97 0.00 3.40 1.94 0.00 0.00 0.00 0.00 0.00 93.69

14时03分15秒 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

--字段含义

%user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程(usr/total)*100

%nice 在internal时间段里,nice值为负进程的CPU时间

(%) (nice/total)*100

%sys 在internal时间段里,内核时间(%) (system/total)*100

%iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100

%irq 在internal时间段里,硬中断时间(%) (irq/total)*100

%soft 在internal时间段里,软中断时间(%) (softirq/total)*100

%idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100

5、dstat--系统监控工具

dstat显示了cpu使用情况,磁盘io情况,网络发包情况和换页情况,输出是彩色的,可读性较强,相对于vmstat和iostat的输入更加详细且较为直观。在使用时,直接输入命令即可,当然也可以使用特定参数。

tbhw@fs-debian:~/remember$ dstat -cdlmnpsy

----total-cpu-usage---- -dsk/total- ---load-avg--- ------memory-usage----- -net/total- ---procs--- ----swap--- ---system--

usr sys idl wai hiq siq| read writ| 1m 5m 15m | used buff cach free| recv send|run blk new| used free| int csw

3 1 9

4 2 0 0| 402k 81k|2.07 2.11 2.05|1500M 108M

1894M 4383M| 0 0 | 0 0 1.1| 0 8088M| 559 1735

1 0 99 0 0 0| 0 0 |2.07 2.11 2.05|1500M 108M

1893M 4384M|1050B 62B| 0 0 0| 0 8088M| 351 568

1 0 95 5 0 0| 0 368k|2.07 2.11 2.05|1501M 108M 1882M 4395M| 155B 0 | 0 1.0 0| 0 8088M| 376 592

1 1 98 1 0 0| 0 4096B|2.07 2.11 2.05|1501M 108M 1881M 4395M|1328B 0 | 0 0 0| 0 8088M| 414 597 ^C tbhw@fs-debian:~/remember$ dstat -cdlmnpsy --tcp

----total-cpu-usage---- -dsk/total- ---load-avg--- ------memory-usage----- -net/total-

---procs--- ----swap--- ---system-- ----tcp-sockets----

usr sys idl wai hiq siq| read writ| 1m 5m 15m | used buff cach free| recv send|run blk new| used free| int csw |lis act syn tim clo

3 1 9

4 2 0 0| 390k 79k|1.8

5 2.01 2.02|1498M 108M

1874M 4405M| 0 0 | 0 0 1.0| 0 8088M| 557 1721 | 9 3

0 0 0

1 1 99 0 0 0| 0 0 |1.85 2.01 2.02|1498M 108M 1874M 4405M| 210B 0 | 0 0 0| 0 8088M| 346 705 | 9

3 0 0 0

1 0 99 0 0 0| 0 0 |1.85 2.01 2.02|1497M 108M 1875M 4405M| 0 0 | 0 0 0| 0 8088M| 459 1468 | 9

3 0 0 0

1 0 98 0 0 0| 0 0 |1.86 2.01 2.02|1498M 108M 1874M 4405M| 92B 0 | 0 0 1.0| 0 8088M| 321 52

2 | 9 3

0 0 0

1 0 98 1 0 0| 0 392k|1.86 2.01 2.02|1498M 108M 1874M 4405M| 146B 62B| 0 0 0| 0 8088M| 344 491 | 9

3 0 0 0

1 0 99 0 0 0| 0 0 |1.86 2.01 2.02|1498M 108M 1874M 4405M| 92B 0 | 0 0 0| 0 8088M| 264 475 | 9

3 0 0 0

1 0 99 0 0 0| 0 0 |1.86 2.01 2.02|1498M 108M 1874M 4405M| 54B 62B| 0 0 0| 0 8088M| 309 486 | 9

3 0 0 0

1 1 99 0 0 0| 0 96k|1.86 2.01 2.02|1498M 108M 1874M 4405M| 165B 0 | 0 0 0| 0 8088M| 295 550 | 9

3 0 0 0

6、—netstat

Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

--常见用法:

netstat –npl 可以查看你要打开的端口是否已经打开。

netstat –rn 打印路由表信息。

netstat –in 提供系统上的接口信息,打印每个接口的MTU,输入分组数,输入错误,输出分组数,输出错误,冲突以及当前的输出队列的长度。tbhw@fs-debian:~$ netstat -in

Kernel Interface table

Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP

TX-OVR Flg

enp0s25 1500 0 0 0 0 0 0

0 0 BMU

lo 65536 196 0 0 0 196 0 0 0 LRU

vmnet1 1500 0 0 0 0 136 0

0 0 BMRU

vmnet8 1500 0 0 0 0 136 0

0 0 BMRU

wlo1 1500 139929 0 0 0 43279 0

0 0 BMRU

tbhw@fs-debian:~$ netstat -rn

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0

0 wlo1

169.254.0.0 0.0.0.0 255.255.0.0 U 0 0

0 wlo1

172.16.132.0 0.0.0.0 255.255.255.0 U 0 0

0 vmnet1

172.16.184.0 0.0.0.0 255.255.255.0 U 0 0

0 vmnet8

192.168.0.0 0.0.0.0 255.255.0.0 U 0 0

0 wlo1

7、lsof

lsof(list open files)是一个列出当前系统打开文件的工具。通过lsof工具能够查看这个列表对系统检测及排错,常见的用法:

查看文件系统阻塞lsof /boot

查看端口号被哪个进程占用lsof -i : 3306

查看用户打开哪些文件lsof –u username

查看进程打开哪些文件lsof –p 4838

查看远程已打开的网络链接lsof –i @192.168.34.128

tbhw@fs-debian:~$ sudo lsof -i @192.168.0.195

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

chrome 2167 tbhw 141u IPv4 404109 0t0 TCP fs-

debian:42232->https://www.360docs.net/doc/ec9700793.html,:https (SYN_SENT)

chrome 2167 tbhw 152u IPv4 404110 0t0 TCP fs-

debian:42234->https://www.360docs.net/doc/ec9700793.html,:https (SYN_SENT)

chrome 2167 tbhw 185u IPv4 402189 0t0 TCP fs-

debian:33302->203.208.41.57:https (ESTABLISHED)

chrome 2167 tbhw 231u IPv4 50776 0t0 TCP fs-

debian:49596->113.96.233.139:https (ESTABLISHED)

tbhw@fs-debian:~$ sudo lsof -p 7384

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1001/gvfs Output information may be incomplete.

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

java 7384 tbhw cwd DIR 8,7 4096 3017572 /home/tbhw/kafka_2.12-0.11.0.1/bin

java 7384 tbhw rtd DIR 8,5 4096 2 /

java 7384 tbhw txt REG 8,5 7734 815091 /usr/jdk1.8.0_161/bin/java

java 7384 tbhw mem REG 8,5 1178928 1715343 /usr/jdk1.8.0_161/jre/lib/ext/localedata.jar

java 7384 tbhw mem REG 8,5 660000 1081266 /usr/jdk1.8.0_161/jre/lib/jsse.jar

java 7384 tbhw mem REG 8,7 871369 3017648 /home/tbhw/kafka_2.12-0.11.0.1/libs/zookeeper-3.4.10.jar

java 7384 tbhw mem REG 8,7 74798 3017647 /home/tbhw/kafka_2.12-0.11.0.1/libs/zkclient-0.10.jar

java 7384 tbhw mem REG 8,7 63777 3017708 /home/tbhw/kafka_2.12-0.11.0.1/libs/validation-api-1.1.0.Final.jar java 7384 tbhw mem REG 8,7 1056168 3017651 /home/tbhw/kafka_2.12-0.11.0.1/libs/snappy-java-1.1.2.6.jar

java 7384 tbhw mem REG 8,7 12244 3017646 /home/tbhw/kafka_2.12-0.11.0.1/libs/slf4j-log4j12-1.7.25.jar

java 7384 tbhw mem REG 8,7 41203 3017652 /home/tbhw/kafka_2.12-0.11.0.1/libs/slf4j-api-1.7.25.jar

java 7384 tbhw mem REG 8,7 204313 3017649 /home/tbhw/kafka_2.12-0.11.0.1/libs/scala-parser-combinators_2.12-1.0.4.jar

java 7384 tbhw mem REG 8,7 5278660 3017645 /home/tbhw/kafka_2.12-0.11.0.1/libs/scala-library-2.12.2.jar

java 7384 tbhw mem REG 8,7 7405243 3017715 /home/tbhw/kafka_2.12-0.11.0.1/libs/rocksdbjni-5.0.1.jar

java 7384 tbhw mem REG 8,7 130999 3017682 /home/tbhw/kafka_2.12-0.11.0.1/libs/reflections-0.9.11.jar

java 7384 tbhw mem REG 8,7 247351 3017698 /home/tbhw/kafka_2.12-0.11.0.1/libs/plexus-utils-3.0.24.jar

java 7384 tbhw mem REG 8,7 20235 3017705 /home/tbhw/kafka_2.12-0.11.0.1/libs/osgi-resource-locator-1.0.1.jar java 7384 tbhw mem REG 8,7 82123 3017644 /home/tbhw/kafka_2.12-0.11.0.1/libs/metrics-core-2.2.0.jar

tbhw@fs-debian:~$ lsof -u tbhw|more

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

systemd 1157 tbhw cwd DIR 8,5 4096 2 /

systemd 1157 tbhw rtd DIR 8,5 4096

2 /

systemd 1157 tbhw txt REG 8,5 1141448 1308562 /lib/systemd/systemd

systemd 1157 tbhw mem REG 8,5 47632 1308178 /lib/x86_64-linux-gnu/libnss_files-2.24.so

systemd 1157 tbhw mem REG 8,5 47688 1308180 /lib/x86_64-linux-gnu/libnss_nis-2.24.so

systemd 1157 tbhw mem REG 8,5 89064 1308175 /lib/x86_64-linux-gnu/libnsl-2.24.so

systemd 1157 tbhw mem REG 8,5 31616 1308176 /lib/x86_64-linux-gnu/libnss_compat-2.24.so

systemd 1157 tbhw mem REG 8,5 19008 1308259 /lib/x86_64-linux-gnu/libuuid.so.1.3.0

systemd 1157 tbhw mem REG 8,5 18832 1308189 /lib/x86_64-linux-gnu/libattr.so.1.1.0

systemd 1157 tbhw mem REG 8,5 79936 1308231 /lib/x86_64-linux-gnu/libgpg-error.so.0.21.0

systemd 1157 tbhw mem REG 8,5 283464 1308242 /lib/x86_64-linux-gnu/libblkid.so.1.1.0

systemd 1157 tbhw mem REG 8,5 22944 1308197 /lib/x86_64-linux-gnu/libcap-ng.so.0.0.0

tbhw@fs-debian:~$ lsof -i :443

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME chrome 2167 tbhw 131u IPv4 413120 0t0 TCP fs-

debian:34506->https://www.360docs.net/doc/ec9700793.html,:https (SYN_SENT)

chrome 2167 tbhw 140u IPv4 413121 0t0 TCP fs-

debian:34508->https://www.360docs.net/doc/ec9700793.html,:https (SYN_SENT)

chrome 2167 tbhw 231u IPv4 50776 0t0 TCP fs-debian:49596->113.96.233.139:https (ESTABLISHED)

tbhw@fs-debian:~$ lsof /run/

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME gnome-she 1412 tbhw 37w FIFO 0,19 0t0 337293

/run/systemd/inhibit/101.ref

mission-c 1472 tbhw 15w FIFO 0,19 0t0 21383

/run/systemd/inhibit/7.ref

gnome-set 1528 tbhw 18w FIFO 0,19 0t0 23838

/run/systemd/inhibit/9.ref

gnome-set 1528 tbhw 23w FIFO 0,19 0t0 25135

/run/systemd/inhibit/11.ref

系统性能监控

linux系统性能监控 1)uptime查看运行时间,连接数以及负载数 2)top查看各进程的cpu使用情况 3)vmstat可以统计系统的cpu,内存,swap,io等情况 4)pidstat主要用于监控全部或指定进程占用系统资源的情况 Uptime: 依次显示运行的时长,当前登录用户数,服务器在过去的1min,5min,15min的系统平均负载值 平均负载值最佳为1,表示每个进程都可以立即执行不会错过cpu周期,单处理器中1或者2都是可以接受的,在多处理器的服务器上可能看到8到10 Top 第一行显示和uptime相同的内容

4-5行显示cpu内存情况 Vmstat 不写参数的话值采集一次,写参数的话如图表示每隔2s采集一次一共采集四次

r表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU 比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。 b表示阻塞的进程 swpd虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。 free空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。 buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存 cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高程序执行的性能,当程序使用内存时,buffer/cached 会很快地被使用。) si每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。 so每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。 bi块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒 bo块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。 in每秒CPU的中断次数,包括时间中断 cs每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。 us用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us 接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。 sy系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

Linux 性能测试与分析报告

Linux 性能测试与分析 Linux 性能测试与分析 Revision History 1 性能测试简介 l 性能测试的过程就是找到系统瓶颈的过程。 l 性能测试(包括分析和调优)的过程就是在操作系统的各个子系统之间取得平衡的过程。l 操作系统的各个子系统包括: ?CPU

?Memory ?IO ?Network 他们之间高度依赖,互相影响。比如: 1. 频繁的磁盘读写会增加对存的使用 2. 大量的网络吞吐,一定意味着非常可观的CPU利用率 3. 可用存的减少可能增加大量的swapping,从而使系统负载上升甚至崩溃 2 应用程序类型 性能测试之前,你首先需要判断你的应用程序是属于那种类型的,这可以帮助你判断哪个子系统可能会成为瓶颈。 通常可分为如下两种: CPU bound –这类程序,cpu往往会处于很高的负载,当系统压力上升时,相对于磁盘和存,往往CPU首先到达瓶颈。Web server,mail server以及大部分服务类程序都属于这一类。 I/O bound –这类程序,往往会频繁的访问磁盘,从而发送大量的IO请求。IO类应用程序往往利用cpu发送IO请求之后,便进入sleep状态,从而造成很高的IOWAIT。数据库类程序,cache服务器往往属于这种类型。 3 CPU

3.1 性能瓶颈 3.1.1 运算性能瓶颈 作为计算机的计算单元,其运算能力方面,可能出现如下瓶颈: 1. 用户态进程CPU占用率很高 2. 系统态(核态)CPU占用率很高 测试CPU的运算性能,通常是通过计算圆周率来测试CPU的浮点运算能力和稳定性。据说Pentium CPU的一个运算bug就是通过计算圆周率来发现的。圆周率的计算方法,通常是计算小数点后104万位,通过比较运算时间来评测CPU的运算能力。 常用工具: 1. SUPER PI(π) 2. Wprime 与SuperPI不同的是,可以支持多核CPU的运算速度测试 3. FritzChess 一款国际象棋测试软件,测试每秒钟可运算的步数 突破CPU的运算瓶颈,一般只能靠花钱。比如提高时钟频率,提高L1,L2 cache容量或不断追求新一代的CPU架构: Core -> Nehalem(E55x,如r710,dsc1100) -> Westmere –> Sandy Bridge 3.1.2 调度性能瓶颈 CPU除了负责计算之外,另一个非常重要的功能就是调度。在调度方面,CPU可能会出现如下性能瓶颈: 1. Load平均值超过了系统可承受的程度 2. IOWait占比过高,导致Load上升或是引入新的磁盘瓶颈 3. Context Switch过高,导致CPU就像个搬运工一样,频繁在寄存器(CPU Register)和运行队列(run queue)之间奔波 4. 硬中断CPU占比接近于100% 5. 软中断CPU占比接近于100% 超线程 超线程芯片可以使得当前线程在访问存的间隙,处理器可以使用它的机器周期去执行另外一个线程。一个超线程的物理CPU可以被kernel看作是两个独立的CPU。 3.2 典型监控参数 图1:top

LTP性能测试工具详细介绍

LTP工具说明 1LTP测试套件 (2) 1.1简介 (2) 1.2 源目录结构 (2) 2 LTP安装 (3) 2.1 下载 (3) 2.2 编译 (3) 2.3 安装说明 (4) 3 LTP测试套件结构说明 (5) 3.1 概述 (5) 3.2 目录介绍 (5) 3.3 LTP执行原理 (5) 4 LTP测试套件测试内容 (5) 4.1 LTP测试套件测试内容 (5) 4.1.1 commands (6) 4.1.2 kernel (6) 4.1.3 kdump (6) 4.1.4 network (6) 4.1.5 realtime (7) 4.1.6 open_posix_testsuite (7) 4.1.7 misc (7) 4.2 测试方法说明 (7) 4.2.1 commands模块内容描述及实现方法 (7) 4.2.2 kernel (8) 4.2.3 network (13) 4.2.4 open_posix_testsuite (15) 4.2.5 realtime (16) 5 LTP测试套件配置详细 (17) 5.1 networktests.sh脚本配置 (17) 5.2 networkstress.sh配置 (20) 5.3 open_posix_testsuite测试套件 (22) 5.4 realtime配置 (23) 5.5 mm脚本的配置 (24) 5.6 io脚本配置 (24) 5.7 filecaps的配置 (24) 5.8 tpm_tools的配置 (25) 5.9 tcore的配置 (25) 5.10 io_floppy的配置 (25) 5.11 io_cd 的配置 (25) 5.12 cpuhotplug的配置 (25) 5.13 adp.sh的配置 (26) 5.14 autofs1.sh和autofs4.sh的配置 (27)

主机及存储设备性能监控方案

主机及存储设备性能监控方案 一背景和目标 目前,为各省配备的小型机和存储设备都已进入稳定运行阶段,总局信息中心决定在各省开展小型机和存储设备的性能监控工作,对小型机和存储设备的主要性能数据进行定期采集,了解和掌握当前设备的性能和压力状况,为基础设施的运行维护、资源优化和建设规划工作积累经验和提供依据。 二监控范围 主机及存储设备性能监控的范围主要包括总局统一为各省配备的HP小型机(superdome)、IBM小型机(P595,P570)和EMC磁盘阵列设备。 三监控时间 主机及存储设备性能监控工作将对连续3个月内的关键时间点对HP 小型机、IBM小型机和EMC磁盘阵列设备的关键性能指标进行数据采集,建议在系统忙时和闲时分别进行检测。一般建议每月至少监控4天,其中征期至少两天,非征期至少两天;每天监控至少4次,其中忙时至少两次,闲时至少两次。具体监控时间和详细的监控次数,各省可根据本省的业务特点进行确定和调整。

四监控方式 主机及存储设备性能监控通过运行小型机及存储设备自带的命令对关键性能指标进行查看,并进行数据采集。技术方案第五部分详细介绍了HP小型机、IBM小型机和EMC磁盘阵列性能监控命令的操作指南。数据采集工作可直接按照操作指南运行命令进行,也可以通过运行命令脚本(详见附件三)进行。 五操作指南 5.1 IBM小型机性能监控方案 5.1.1系统性能检查方式及说明: (一)IBM小型机性能监控均通过IBM AIX系统自带命令,非第三方软件。IBM AIX系统安装后,无需额外安装任何软件包即可使用。(二)IBM小型机性能监控的命令,均不额外增加系统负荷。即是说当系统繁忙度较高时,仍可执行下列命令,且不对系统造成影响。(三)采样数据的保存。通过执行IBM小型机性能监控命令,输出结果的保存办法,一般常用以下几种: 1、使用专业的telnet工具登录到主机上。专业telnet工具均会含有“捕获输出文字”的功能,只要打开捕获输出文字功能,所有的输出均会记录到文件中。(推荐,不影响系统) 2、使用AIX系统的输出重定向功能。 命令格式:# 命令> 文件名

性能测试-linux资源监控

目录: Linux硬件基础 CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制。 CPU:CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。 查询指令:cat /proc/cpuinfo 内存:大脑中的记忆区块,将皮肤、眼睛等所收集到的信息记录起来的地方,以供CPU 进行判断。 内存:影响内存的性能主要是内存主频、内容容量。 查询指令:cat /proc/meminfo 硬盘:大脑中的记忆区块,将重要的数据记录起来,以便未来再次使用这些数据。 硬盘:容量、转速、平均访问时间、传输速率、缓存。 查询指令:fdisk -l (需要root权限) Linux监控命令 linux性能监控分析命令 vmstat vmstat使用说明 vmstat可以对操作系统的内存信息、进程状态、CPU活动、磁盘等信息进行监控,不足之处是无法对某个进程进行深入分析。 vmstat [-a] [-n] [-S unit] [delay [ count]] -a:显示活跃和非活跃内存 -m:显示slabinfo -n:只在开始时显示一次各字段名称。 -s:显示内存相关统计信息及多种系统活动数量。 delay:刷新时间间隔。如果不指定,只显示一条结果。 count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。-d:显示各个磁盘相关统计信息。 Sar sar是非常强大性能分析命令,通过sar命令可以全面的获取系统的CPU、运行队列、磁盘I/O、交换区、内存、cpu中断、网络等性能数据。 sar 命 令行

linux高级监控工具sinfo

Sinfo Sinfo是一款监视工具,使用广播方案来发布关于你本地网络上每一台计算机的运行状况的信息。它支持显示多方面的内容,比如处理器、内存使用情况、网络负载以及关于每一台计算机上五个主要进程的信息。Sinfo使用ncurses,以一目了然的方式来显示信息。 Sinfo可以显示关于多台计算机的系统信息,以便管理。使用的时候可以通过-s选项查看更多信息。 安装过程 如果你使用基于Debian的系统,比如Debian和Ubuntu等系统,可以使用二进制包,可以在你的repo中找一下。考虑到该软件包括了一个启动守护程序sinfod,我强烈建议使用这个可选的二进制文件,因为这个过程的许多方面实现了自动化(它也是我在这里探讨的版本)。不过,为了确保发行版中立,与往常一样,我还在安装过程中介绍了源版本。 说明文档对代码库的要求如下: ?ncurses:用于终端处理的代码库(5.7版本)。 ?boost:可移植的C++源代码库,使用Boost.Bind和Boost.Signals(1.42版本)。 ?asio (>=1.1.0):asio是一个跨平台的C++代码库,用于网络编程(1.4.1版本)。 如果你通过源代码编译,还需要上面这些代码库的开发包(-dev)。libboost-下的开发包的数量相当多,所以要是你在编译过程中遇到了任何问题,请先检查libboost是不是安装全了。 对于使用源代码来运行的那些人来说,一旦你搞定了代码库要求,就可以获取最新的tarball文件(下载地址)。解压缩,在新的文件夹中打开终端,输入以下命令: $ ./configure $ make 如果你的发行版使用sudo: $ sudo make install

查看性能指标命令

、查看CPU使用情况 cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入wait。 平均负载(load average)是指某段时间内占用cpu时间的进程和等待cpu时间的进程数,这里等待cpu时间的进程是指等待被唤醒的进程,不包括处于wait 状态进程。 1、良好状态指标 ?CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70%。 ?上下文切换:与CPU利用率相关联,如果CPU利用率状态良好,大量的上下文切换也是可以接受的。 ?可运行队列:每个处理器的可运行队列<=3个线程。 2、工具 (1)vmstat 字段说明: r (run queue)可运行队列的线程数,这些线程都是可运行状态,只不过CPU 暂时不可用; b,被blocked的进程数,正在等待IO请求; in,interrupts,被处理过的中断数 cs,context switch,系统上正在做上下文切换的数目 us,用户占用CPU的百分比 sys,内核和中断占用CPU的百分比 id,CPU完全空闲的百分比

(2)uptime [root@node1 ~]# uptime 00:44:22 up 1:17, 3 users, load average: 8.13, 5.90, 4,94 显示的是过去的1,5,15分钟内进程队列中的平均进程数量 如何衡量当前系统是否负载过高? 如果每个cpu(可以按CPU核心的数量计算)上当前活动进程数不大于3,则系统性能良好, 不大于4,表示可以接受 如大于5,则系统性能问题严重 上面例中的8.13,如果有2个cpu核心,则8.13/2=4.065, 此系统性能可以接受 建议设置严格的报警值为: CPU核心的数量 比如:CPU核心数量为2,则设置报警值为2 (3)top [root@node1 ~]# top top - 10:31:45 up 14:51, 3 users, load average: 0.07, 0.33, 0.33 Tasks: 91 total, 1 running, 90 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 502288k total, 494648k used, 7640k free, 220k buffers Swap: 1015800k total, 21792k used, 994008k free, 238468k cached 从top 要看CPU负载情况,可以看%us和%sy,其 中%us<=70%, %sy<=35%,%us+%sy<=70%说明状态良好,同时可以结合idle值来看,也就是%id,如果%id<=70% 则表示IO的压力较大

(整理)linux系统监控性能评估.

总控服务器性能: 一、Cpu性能评估 Vmstat命令的参数解释: 对上面每项的输出解释如下: procs r列表示运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU 不足,需要增加CPU。? b列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。 Memory swpd列表示切换到内存交换区的内存数量(以k为单位)。如果swpd的值不为0,或者比较大,只要si、so的值长期为0,这种情况下一般不用担心,不会影响系统性能。 free列表示当前空闲的物理内存数量(以k为单位)? buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲。 cache列表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。 swap si列表示由磁盘调入内存,也就是内存进入内存交换区的数量。 so列表示由内存调入磁盘,也就是内存交换区进入内存的数量。 一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足。需要增加系统内存。? IO项显示磁盘读写状况? Bi列表示从块设备读入数据的总量(即读磁盘)(每秒kb)。 Bo列表示写入到块设备的数据总量(即写磁盘)(每秒kb) 这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大,则表示系统磁盘IO有问题,应该考虑提高磁盘的读写性能。 system 显示采集间隔内发生的中断数 in列表示在某一时间间隔中观测到的每秒设备中断数。 cs列表示每秒产生的上下文切换次数。 上面这2个值越大,会看到由内核消耗的CPU时间会越多。 CPU项显示了CPU的使用状态,此列是我们关注的重点。 us列显示了用户进程消耗的CPU 时间百分比。us的值比较高时,说明用户进程消耗的cpu 时间多,但是如果长期大于50%,就需要考虑优化程序或算法。 sy列显示了内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。 根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足。 id 列显示了CPU处在空闲状态的时间百分比。 wa列显示了IO等待所占用的CPU时间百分比。 wa值越高,说明IO等待越严重,根据经验,wa的参考值为20%,如果wa超过20%,说明IO等待严重,引起IO等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者磁盘控制器的带宽瓶颈造成的(主要是块操作)。综上所述,在对CPU的评估中,需要重点注意

基于RTLinux的实时系统性能测试

摘要 实时系统实现了对事件响应和处理的严格时间控制。 实时操作系统分为嵌入式和普通系统两种。大部分的嵌入式系统也需要提供实时响应和控制能力。虽然嵌入式实时系统与普通实时系统的规模,应用,性能及可靠性要求都不同,但是这两种实时操作系统都一般是基于微内核的和模块化的。系统可以在最小规模下工作时,操作系统仅仅提供一些最基本的服务,大量的在一般系统中由操作系统完成的任务由作为应用运行的系统级任务完成。 为了测试实时系统的性能,我们设计了分别在实时环境(RTLinux)与非实时环境(普通Linux)下运行的两个程序,通过他们之间任务执行时间的比较,达到我们测试的目的。 本论文详细阐述了作者在实时环境下的测试,以及与非实时环境下测试的比较。首先,简要的介绍了Linux操作系统,嵌入式操作系统,实时系统以及嵌入式实时系统,这些都是一些相关的信息。其中,对于实时系统(RTOS),我们给出了比较详细的介绍,包括实时系统的定义,分类,结构以及衡量指标等。然后,详细的说明了实时Linux系统---RTLinux,阐述了RTLinux的实现机理,特点,应用等。RTLinux编程是本论文的另一个重点,我们的设计使用的就是RTLinux的API接口。RTLinux编程主要涉及的方面包括模块,线程及其调度,FIFO,中断以及串口API。接下来,是本设计的实现与分析,通过对总体模块以及程序各个模块的分析,解释出总体设计思路,以及一些具体的设计方法,然后是实时与非实时系统测出的数据的比较,实现我们设计的初衷---测试实时系统的性能。最后,在已完成工作的基础上,对设计进行了总结。

ABSTRACT Real-time system implements the rigid time requirements of task response and handling. Real-time system can be devide into embedded and ordinary system. Most of the embedded system also require the ability of real-time response and control. Although embedded and ordinary real-time systems have so many differences in size, application, performance and credibility etc.This two systems are both based on micro kernel and modulity. The system can work with minimal resources. The operating system only provides some basic services. Most of the services, that is provided by operating system in ordinary systems, are implemented as system application task. In ordre to test the performance of read-time system, we designed two progammes which are respectively run in the enviroment of real-time and non real-tiem. Through the comparision of the execution time, we can get the result we want, that is real-time system implements the rigid time requirements. This thesis elaborates the test in real-time enviroment and the comparision between real-time and non real-time systems. First, I introduce Linux operating system, embedded operating system, real-time system and embedded real-time system. These are all something related to my designation. Among them, I describe the real-time system (RTOS) in detail, including definition, classification, configuration and judging standard. Then, wo elaborated a real-tiem Linux system---RTLinux, includnig implementing methods, characristics, application and so on. RTLinux programming is another focas points of this thesis. I use RTLinux API interfaces to build up my progarmmes. RTLinux programming involves modules, thread and its scheduling, FIFO, interrupts, and serial port API. After that, it is the implementation and analysis of my design. Through the analysis of the overall modules and every modules, I explain my designing mechanism and the concrete designing methods. Then we get the data that is execution time in both real-time and non real-time systems. Via comparision, we can test the performance of the real-time systems. At last, based on the work that I have done, I reach my conclusion.

Windows操作系统的性能监控工具――Perfmon

Windows操作系统的性能监控工具――Perfmon 一、概述 Perfmon(Performance Monitor)是Windows自带的的性能监控工具,这个工具可监控包括CPU、内存、网络、进程、磁盘等多个对象的上百个指标。Perfmon提供了图表化的系统性能实时监视器、性能日志和警报管理,系统的性能日志可定义为二进制文件、文本文件、SQLSERVER表记录等方式,可以很方便地使用第三方工具进行性能分析。 二、常用的性能指标 系统的整体性能由许多因素决定,例如CPU利用率、CPU队列长度、磁盘空间和I/O、内存使用情况、网络流量等等。对于实时性要求较高的系统而言,对系统关键性指标的有效监控和管理是保证系统高可用性的重要手段,因此,务必制定出明确的系统性能策略规划,并对这些性能指标进行有效的实时监控。当关键性能指标严重偏离或者系统发生故障时,应该采取有效手段来准确定位问题引发的原因,并通过调优系统配置或改进应用程序等手段来有效提高系统的可用性。 (一)Perfmon的监控对象 Perfmon提供了比较全面的系统性能指标,并且能够根据性能管理的要求订制日志内容、制定关键指标偏离时的警报措施。《表一》

列出了Perfmon可以监控的性能对象,每一个性能对象项下包含多个性能指标计数器。

(二)常用的Perfmon监控对象与指标 以上列出的性能对象总共有上百个性能指标,我们关注一个系统的性能时,不可能关注这么多指标,有些对象对实际的应用系统影响并不大。但对一个Windows操作系统来说,CPU、Memmory、Disk 和Network等关键对象是性能监控中必不可少的项。《表二》列举了最常用的性能对象的重要指标。

AIX常用的性能监控命令

AIX常用的性能监控命令 2009-07-24 10:38 机器性能优化主要从四个方面去考虑:CPU,内存,磁盘I/O,网络。 1, CPU sar命令 可以使用sar命令来查看cpu的使用率。 ibm150:[/]#sar 1 5 AIX ibm150 1 5 000AF70D4C00 01/24/06 13:13:25 %usr %sys %wio %idle 13:13:26 0 0 0 100 13:13:27 0 0 0 100 13:13:28 0 0 0 100 13:13:29 0 0 0 100 13:13:30 0 0 0 100 Average 0 0 0 100 %usr + %sys > 80% 的时候 CPU将是瓶颈 ibm150:[/]#ps aux | head -4 查看前3位占用cpu的进程USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND

root 774 49.7 8.0 12 18052 - A 10:07:58 188:24 wait root 516 49.7 8.0 12 18052 - A 10:07:58 188:20 wait root 5688 0.1 0.0 164 168 - A 10:09:13 0:21 /usr/sbin/syncd 6 %CPU表示进程使用cpu时间的百分比;%MEM表示进程使用实际内存的百分比 ps –elf 命令 将查看进程的优先级别 ibm150:[/]#ps -elf F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 200003 A root 1 0 0 60 20 28034 1876 10:08:23 0:00 /etc/init 240401 A root 2968 4502 0 60 20 2c376 2176 * 10:10:230:00 /usr/sbin/rsct/bin/IBM.ServiceRMd 40001 A root 3192 1 0 60 20 3417a 1472 10:09:00 - 0:00 /usr/dt/bin/dtlogin -daemon 240001 A root 3730 4158 3 61 20 321b9 2568 10:10:19 - 0:20 dtgreet PRI值越小,优先级越大。

详解linux下使用IOMETER测试磁盘IO性能

详解linux下使用IOMETER测试磁盘IO 性能 2012年06月18日?Linux平台?评论数 5?浏览:8587 Views 前面有分享了windows下如何使用IOMETER来测试网络磁盘的IO性能,今天分享一下linux下如何使用IOMETER来测试网络磁盘的性能。在linux下和window 下工作模式有些区别:在linux上,iometer包括两部分:IOmeter主程序和执行代理,你可以在windows上安装运行iometer主程序,在linux上安装运行iometer执行代理,主程序就会把读写配置传递给执行代理来执行。 首先:在linux下安装iomter,以我的redhat 6.1 64位的操作系统为例,到iometer主页上下载版本:iometer-2008-06-22-rc2.src.tgz上传到linux中进行如下操作: 1.[root DELL-1 tmp]# tar zxvf iometer-2008-06-22-rc 2.src.tgz //解压 2.[root DELL-1 tmp]# cd iometer-2008-06-22-rc2/src //进入iometer src文件下有多个 Makefile文件找到自己需要的文件版本 3.[root DELL-1 src]# make -f Makefile-Linux.x86_64 dynamo //我的系统是64位所以选择 这个文件安装编译 可能上面的安装编译会出现make: *** [Pulsar.o] Error 1的错误,请进入《linux 64位编译iometer提示make: *** [Pulsar.o] Error 1错误的解决方法》查看解决方法。 其次:在windows下安装IONETER主程序,注意版本要和linux下的一样,我用的是:iometer-2008-06-22-rc2.win.x86_64.zip 最后:如何在linux运行iometer? 先在windows打开iometer主程序,再在linux下进入刚才的安装目录:cd /tmp/iometer-2008-06-22-rc2/src/运行如下命令: 1.[root DELL-1 src]# ./dynamo -i 17 2.18.30.7 -m 172.18.30.17 说明:-i后面用的是windows端的ip, -m后面使用的是linux的IP。 运行如上命令可以出现以下错误: 1.[root DELL-1 src]# ./dynamo -i 17 2.18.30.7 -m 172.18.30.17 2.===> ERROR: Getting host name for"DELL-1" failed. 3.[PortTCP::Create() in IOPortTCP.cpp line 238] 4.errno = 11 5.*** Could not create a TCP/IP Port. exiting..... 原因:当网络环境没有使用DNS会造成hostname和IP无法对应上。 解决方法:在linux下进入/etc配置hosts文件下的hostname如下:我的linux 命名为DELL-1所以在hosts文件的127.0.0.1后添加DELL-1。

Unix,Linux 磁盘 IO 性能监控命令

Unix/Linux 磁盘I/O 性能监控命令 磁盘I/O 性能监控指标和调优方法 在介绍磁盘I/O 监控命令前,我们需要了解磁盘I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能。磁盘I/O 性能监控的指标主要包括: 指标1:每秒I/O 数(IOPS 或tps) 对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘I/O, 磁盘的IOPS 就是每秒磁盘连续读次数和连续写次数之和。当传输小块不连续数据时,该指标有重要参考意义。 指标2:吞吐量(Throughput) 指硬盘传输数据流的速度,传输数据为读出数据和写入数据的和。其单位一般为Kbps, MB/s 等。当传输大块不连续数据的数据,该指标有重要参考作用。 指标3:平均I/O 数据尺寸 平均I/O 数据尺寸为吞吐量除以I/O 数目,该指标对揭示磁盘使用模式有重要意义。一般来说,如果平均I/O 数据尺寸小于32K,可认为磁盘使用模式以随机存取为主;如果平均每次I/O 数据尺寸大于 32K,可认为磁盘使用模式以顺序存取为主。 指标4:磁盘活动时间百分比(Utilization) 磁盘处于活动时间的百分比,即磁盘利用率,磁盘在数据传输和处理命令(如寻道)处于活动状态。磁盘利用率与资源争用程度成正比,与性能成反比。也就是说磁盘利用率越高,资源争用就越严重,性能也就越差,响应时间就越长。一般来说,如果磁盘利用率超过70%,应用进程将花费较长的时间等待I/O 完成,因为绝大多数进程在等待过程中将被阻塞或休眠。 指标5:服务时间(Service Time) 指磁盘读或写操作执行的时间,包括寻道,旋转时延,和数据传输等时间。其大小一般和磁盘性能有关,CPU/ 内存的负荷也会对其有影响,请求过多也会间接导致服务时间的增加。如果该值持续超过20ms,一般可考虑会对上层应用产生影响。 指标6:I/O 等待队列长度(Queue Length) 指待处理的I/O 请求的数目,如果I/O 请求压力持续超出磁盘处理能力,该值将增加。如果单块磁盘的队列长度持续超过2,一般认为该磁盘存在I/O 性能问题。需要注意的是,如果该磁盘为磁盘阵列虚拟的逻辑驱动器,需要再将该值除以组成这个逻辑驱动器的实际物理磁盘数目,以获得平均单块硬盘的I/O 等待队列长度。 指标7:等待时间(Wait Time) 指磁盘读或写操作等待执行的时间,即在队列中排队的时间。如果I/O 请求持续超出磁盘处理能力,意味着来不及处理的I/O 请求不得不在队列中等待较长时间。 通过监控以上指标,并将这些指标数值与历史数据,经验数据以及磁盘标称值对比,必要时结合CPU、内存、交换分区的使用状况,不难发现磁盘I/O 潜在或已经出现的问题。但如果避免和解决这些问题呢?这就需要利用到磁盘I/O 性能优化方面的知识和技术。限于本文主题和篇幅,仅列出一些常用的优化方法供读者参考: 1.调整数据布局,尽量将I/O 请求较合理的分配到所有物理磁盘中。 2.对于RAID 磁盘阵列,尽量使应用程序I/O 等于条带尺寸或者为条带尺寸的倍数。并选取合适 的RAID 方式,如RAID10,RAID5。 3.增大磁盘驱动程序的队列深度,但不要超过磁盘的处理能力,否则,部分I/O 请求会因为丢失 而重新发出,这将降低性能。 4.应用缓存技术减少应用存取磁盘的次数,缓存技术可应用在文件系统级别或者应用程序级别。

linux 内存和CPU 分析

Linux下内存使用率、CPU使用率、以及运行原理 Linux下怎样查看机器配置啊?cpu/内存/硬盘 dmesg 显示开机信息。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里dmesg|grep hd 硬盘 dmesg|grep cpu cpu dmesg|grep proc 内存 dmesg|grep redhat 操作系统 dmesg|more 更多信息 uname -a 操作系统版本 查看linux cpu和内存利用率 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式-- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。 操作实例: 在命令行中输入“top” 即可启动 top top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。 第一部分 -- 最上部的系统信息栏: 第一行(top): “00:11:04”为系统当前时刻; “3:35”为系统启动后到现在的运作时间; “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目; “load average”为当前系统负载的平均值,后面的三个值分别为1 分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程; 第二行(Tasks): “59 total”为当前系统进程总数;

性能测试监控工具nmon安装及使用方法

性能测试监控工具nmon安装及使用方法 发布时间: 2012-9-28 10:22 作者: hualusiyu 来源: 51Testing软件测试网采编 字体: 小中大|上一篇下一篇|打印|我要投稿|推荐标签:性能测试软件测试测试工具 1、概述 监控,在检查系统问题或优化系统性能工作上是一个不可缺少的部分。通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况。根据运行结果分析可以帮助我们快速定位系统问题范围或者性能瓶颈点。 nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。 nmon所记录的数据包含以下一些方面(也是我们在寻找问题过程中所关注的资源点): ● cpu占用率 ● 内存使用情况 ● 磁盘I/O速度、传输和读写比率 ● 文件系统的使用率 ● 网络I/O速度、传输和读写比率、错误统计率与传输包的大小 ● 消耗资源最多的进程 ● 计算机详细信息和资源 ● 页面空间和页面I/O速度 ● 用户自定义的磁盘组 ● 网络文件系统 另外在AIX操作系统上,nmon还能监控到其他的一些信息,如异步I/O等。 2、下载安装nmon

如何获取nmon呢?我们可以在IBM的官方网站上免费下载获取,下载网址为: https://www.360docs.net/doc/ec9700793.html,/developerworks/wikis/display/WikiPtype/nmon。 nmon的安装步骤如下: 1)用root用户登录到系统中; 2)建目录:#mkdir /test; 3)把nmon用ftp上传到/test,或者通过其他介质拷贝到/test目录中; 4)执行授权命令:#chmod +x nmon。 3、nmon数据采集 3.1 数据采集 为了实时监控系统在一段时间内的使用情况并将结果记录下来,我们可以通过运行以下命令实现:#./ nmon -f -t -s 30 -c 180 n -f:按标准格式输出文件:_YYYYMMDD_HHMM.nmon; n -t:输出中包括占用率较高的进程; n -s 30:每30秒进行一次数据采集 n -c 180:一共采集180次 输入命令回车后,将自动在当前目录生成一个hostname_timeSeries.nmon的文件,如果hosname 为test1,生产的文件为:test1_090308_1313.nmon。 通过sort命令可以将nmon结果文件转换为csv文件: # sort -A test1_090308_1313.nmon > test1_090308_1313.csv 执行完sort命令后即可在当前目录生产test1_090308_1313.csv文件。 3.2 生成图形化结果 为了分析nmon监控获得的结果,IBM还提供了相应的图形化分析工具nmon_analyser,通过nmon analyser.xls工具可以把监控的结果文件转换成excel文件,方便分析系统的各项资源占用情况。 nmon analyser.xls工具的使用方法如下: (1)打开nmon analyser.xls工具;

相关文档
最新文档