linux下的性能监控工具命令
htop 命令
htop的优势是可以直接看到进程的启动命令。而且可以看进程树。支持水平、垂直方向 滚动。直接对该进程进行管理操作。
smem 命令
smem 是一款linux下的内存使用情况报告工具。能够给出linux下的内存使用的多种报告。和其他传统内存报告工具不通的是,有一个独特功能:报告PSS,即物理内存使用情况。
因为linux使用的虚拟内存,要准确计算一个进程实际使用的物理内存就不容易。但只知道一个进程的虚拟内存大小也并没有太大用处,因为还无法获取到实际占用的物理内存大小。
RSS (Resident Set Size)
使用top命令可以看到。表示进程占用的物理内存大小。但是将各进程的RSS值相加,通常会超出整个系统的内存消耗,这是因为RSS中包含了各进程间共享的内存。
PSS:(Proportional Set Size)
所有使用某共享库的程序均分该共享库的内存。显然所有进程的PSS之和就是系统的内存使用量。他会更准确一些,它将共享内存的大小进行平均后,再分摊到各个进程上去。
USS(Unique Set Size)
进程独自占用的内存。它只计算了进程独自占用的内存大小,不包含任何任何共享的部分。
smem 使用例子:
smem -p (百分比的形式查看内存使用情况)
smem -u (查看每个用户的内存使用情况)
smem -P nginx ( 查看某个进程占用内存大小)
smem -k -P nginx ( 查看某个进程占用内存大小)
vmstat 命令可以看cpu 和内存(swap)、io占用情况。注意其中swap 即使有占用的话也要根据 si和so 来判断swap是否合理。
《linux高效运维实战》中,对swap占用的说明提到 ,vmstat 命令查询资源占用结果(以上第二图)里面 memory 列内的 swap列 表示切换到内存交换区的内存数量(KB 为单位)。如果swap值不为0,或者比较大,那么只要si 和so 的值长期 为0即没有影响 ( si 、 so全称是 swap in 和 swap out ,即换入 和 换出 的 交换内存量,即换入换出多的话会对IO产生实际压力)。这种情况下一般不用担心,不会影响系统性能。(如果si/so 长期不为0, 表示系统内存不足,需要增加系统内存)
iotop 可以监控磁盘I/O使用状况,检测到哪一个程序使用的磁盘I/O异常。
网络检测工具:
mtr 网络检测
mtr是linux 一个非常棒的网络连通性判断工具,结合了 ping traceroute,nslookup的相关特性。
列含义:
loss%是对应IP行的丢包率,值得一提的是,只有最后的目标丢包才算是真正的丢包。
Last列是最后一次返回的延迟,按毫秒计算的。
Avg列是所有返回延时的平均值。
Best列是最快的一次返回延时。
Wrst 是最差。
StDev列是标准偏差。
tcpdump 网络抓包分析工具命令
tcpdump 命令抓包分析:
参数:
-i 指定网卡,默认是eth0
-n线上IP,而不是hostname
-c 指定抓到多少个包后退出。
-A 以ASCII方式显示包的内容。这个选项对文本格式的协议包很有用。
-x 以16进制显示包的内容。
-vvv显示详细信息。
-s 按长包截取数据。默认是60字节,如何包大于60字节,则抓包会出现丢数据现象。所以一般会设置-s 0,这样会按照包的大小截取数据。并且抓到的是完整的包数据。
-r 从文件中读取(与-w 对应,例如,tcpdump -w test.out… 查看余下内容