快速定位性能瓶颈,检查出所有资源(CPU、内存、磁盘IO等)的利用率(utilization)、饱和度(saturation)和错误(error)度量,即USE方法

命令:uptime
说明:查看机器分别在1分钟、5分钟、15分钟的平均负载情况,显示的数字表示等待cpu资源的进程和阻塞在不可中断io进程的数量,如果1分钟的平均负载很高,而15分钟的平均负载很低,说明服务器正处于高负载情况,需要进一步排查cpu资源都消耗在了哪里。反之,如果15分钟的平均负载很高,而1分钟的平均负载很低,则有可能是cpu资源紧张的时刻已经过去。

命令:dmesg|tail
说明:输出系统日志的最后10行。

命令:vmstat 1
说明:每行输出一些系统核心指标,1表示每1秒输出一次统计信息。
r:等待在cpu资源的进程数,如果超过了机器cpu核数,那么机器的cpu资源已经饱和。
free:系统可用内存数,单位:kb
si,so:交换区写入和读取的数量。如果大于0,说明系统已经在使用交换区(swap),机器的物理内存已经不足。
us,sy,id,wa,st:这些都代表了cpu时间的消耗,分别表示用户时间,系统内核时间,空闲时间,io等待时间和被偷走的时间(stolen,一般被其他虚拟机消耗)
一般情况下,如果用户时间和系统时间相加非常大,cpu处于忙于执行指令。如果io等待时间很长,那么系统的瓶颈可能在磁盘io。如果大量cpu时间消耗在用户态,
也就是用户应用程序消耗了cpu时间。这不一定是性能问题,需要结合r队列,一起分析。

命令: mpstat -P ALL 1
说明:显示每个cpu的占用情况

命令: pidstat 1(需要安装sysstat包)
说明:查看进程占用的cpu资源情况

命令:iostat -x 1
说明:查看机器磁盘io情况

命令:free -m
说明:查看系统内存的使用情况,m表示按照兆字节显示。

命令:sar -n DEV 1
说明:查看网络设备的吞吐率。可以判断网络设备是否已经饱和。硬件上限:1Gbit/sec

命令:sar -n TCP,ETCP 1 (需要安装sysstat包)
说明:查看TCP连接状态,
active/s:每秒本地发起的tcp连接数
passive/s:每秒远程端发起的TCP连接数
retrans/s:每秒TCP重传数量

命令:top
说明:全面的查看系统负载的来源。

上一篇:[转] iOS应用架构谈 网络层设计方案


下一篇:【paper】LINE:Large-scale Information Network Embedding