程序员必知系列之Linux的性能查看命令

176 阅读1分钟

这是我参与 8 月更文挑战的第 6 天,活动详情查看: 8月更文挑战

1.Top命令

load average x y z

对应的是不同时间段的系统的平均的负载:5分钟、10分钟、15分钟

image.png

2.CPU

vmstat

vmstat 2 3

一般的vmstat的工具的使用是通过两个参数来完成,第一个参数是采样的时间间隔数单位是秒,第二个参数是采样的次数

image.png 具体参数解释:

Procs r:运行和等待CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍,否则代表系统压力过大。

b:等待资源的进程数,比如正在等待磁盘I/O、网络I/O等。

cpu

us:用户进程消耗CPU时间的百分比,us值高,用户进程消耗CPU时间多,如果长期大于50%,优化程序;

sy:内核进程消耗的CPU时间百分比;

us+sy参考值为80%,说明可能存在CPU不足 Ps: mystat -P ALL 2(每两秒打印一次)

pidstat -u 1(每一秒打印一次) -p 5101(进程编号)

3.硬盘

df

查看磁盘剩余空间数:df -h

image.png

4.内存

free
  • 应用程序可用内存/系统物理内存>70% 内存充足

  • 应用程序可用内存/系统物理内存<20% 内存不足,需要增加内存

  • 20%<应用程序可用内存/系统物理内存<70%内存基本够用

image.png

5.磁盘IO

iostat
iostat -xdk 2 3

磁盘块设备分布

  • rkB/s 每秒读取数据量是kB

  • wkB/s 每秒写入数据量是kB

  • svctm I/O 请求的平均服务时间,单位是毫秒

  • await I/O 请求的平均等待时间,单位毫秒;值越小,性能越好;

  • util 一秒有百分几的时间用于I/O操作。接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘。

    svctm的值与await的值很接近,表示几乎没有I/O等待,磁盘性能好。 如果await的值远高于svctm的值,则表示I/O队列等待太长,需要优化程序或更换更快的磁盘。

6.网络IO

ifstat

安装ifstat的命令:

 wget <http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz>
 tar -zxvf ifstat-1.1.tar.gz
 cd ifstat-1.1
 ./configure
 make && make install

各个网卡的in、ou

image.png