Linux运维工程师必须掌握的服务器性能参数指标(3)

时间:2018-12-17   来源:   网友评论:0   人气: 77 作者:

(c). 还有一种情况有人也归结进来,就是invalid fault,指的进程要访问的地址不在其虚拟空间内部,属于越界访问。这是比较严重的错误,通常会报段错误并终止程序的执行。

-s:栈使用状况,包括StkSize为线程保留的栈空间,以及StkRef实际使用的栈空间。使用ulimit -s发现CentOS 6.x上面默认栈空间是10240K,而CentOS 7.x、Ubuntu系列默认栈空间大小为8196K
Linux运维工程师必须掌握的服务器性能参数指标-u:CPU使用率情况,参数同前面类似
-w:线程上下文切换的数目,还细分为cswch/s因为等待资源等因素导致的主动切换,以及nvcswch/s线程CPU时间导致的被动切换的统计
如果每次都先ps得到程序的pid后再操作pidstat会显得很麻烦,所以这个杀手锏的-C可以指定某个字符串,然后Command中如果包含这个字符串,那么该程序的信息就会被打印统计出来,-l可以显示完整的程序名和参数

#~ pidstat -w -t -C “ailaw” -l 
这么看来,如果查看单个尤其是多线程的任务时候,pidstat比常用的ps更好使!

1.4 其他

当需要单独监测单个CPU情况的时候,除了htop还可以使用mpstat,查看在SMP处理器上各个Core的工作量是否负载均衡,是否有某些热点线程占用Core。Linux中还有一个工具taskset,可以设置后面运行的命令的CPU affinity。
➜ ~ mpstat -P ALL 1
如果想直接监测某个进程占用的资源,既可以使用top -u taozj的方式过滤掉其他用户无关进程,也可以采用下面的方式进行选择,ps命令可以自定义需要打印的条目信息:

1

while :; do ps -eo user,pid,ni,pri,pcpu,psr,comm | grep ‘ailawd’; sleep 1; done

如想理清继承关系,下面一个常用的参数可以用于显示进程树结构,显示效果比pstree详细美观的多
# ~ ps axjf

二、磁盘IO类

iotop可以直观的显示各个进程、线程的磁盘读取实时速率;lsof不仅可以显示普通文件的打开信息(使用者),还可以操作/dev/sda1这类设备文件的打开信息,那么比如当分区无法umount的时候,就可以通过lsof找出磁盘该分区的使用状态了,而且添加+fg参数还可以额外显示文件打开flag标记。

2.1 iostat

#~ iostat -xz 1

其实无论使用iostat -xz 1还是使用sar -d 1,对于磁盘重要的参数是:

avgqu-sz: 发送给设备I/O请求的等待队列平均长度,对于单个磁盘如果值>1表明设备饱和,对于多个磁盘阵列的逻辑磁盘情况除外;

await(r_await、w_await): 平均每次设备I/O请求操作的等待时间(ms),包含请求排列在队列中和被服务的时间之和;

svctm: 发送给设备I/O请求的平均服务时间(ms),如果svctm与await很接近,表示几乎没有I/O等待,磁盘性能很好,否则磁盘队列等待时间较长,磁盘响应较差;

%util: 设备的使用率,表明每秒中用于I/O工作时间的占比,单个磁盘当%util>60%的时候性能就会下降(体现在await也会增加),当接近100%时候就设备饱和了,但对于有多个磁盘阵列的逻辑磁盘情况除外;

还有,虽然监测到的磁盘性能比较差,但是不一定会对应用程序的响应造成影响,内核通常使用I/O asynchronously技术,使用读写缓存技术来改善性能,不过这又跟上面的物理内存的限制相制约了。

上面的这些参数,对网络文件系统也是受用的。

三、网络类

网络性能对于服务器的重要性不言而喻,工具iptraf可以直观的现实网卡的收发速度信息,比较的简洁方便通过sar -n DEV 1也可以得到类似的吞吐量信息,而网卡都标配了最大速率信息,比如百兆网卡千兆网卡,很容易查看设备的利用率。

通常,网卡的传输速率并不是网络开发中最为关切的,而是针对特定的UDP、TCP连接的丢包率、重传率,以及网络延时等信息。

3.1 netstat

# ~ netstat -s
显示自从系统启动以来,各个协议的总体数据信息。虽然参数信息比较丰富有用,但是累计值,除非两次运行做差才能得出当前系统的网络状态信息,亦或者使用watch眼睛直观其数值变化趋势。所以netstat通常用来检测端口和连接信息的:


 

文章评论