程序员也要会的 Linux 命令

1,420 阅读3分钟

@[toc]


1. 整机

top

在这里插入图片描述
1查看单个 CPU 性能
在这里插入图片描述

uptime

系统性能命令精简版 uptime

在这里插入图片描述
说明:

`load average` : 系统负载均衡
	
	三个值分别代表:系统1分钟,5分钟,15分钟系统的平均负载值
	
	这三个值相加,除以3,再乘以100%的值,如果高于60%,证明系统的负担压力重

2. CPU

vmstat

vmstat -n 2 3

在这里插入图片描述
一般 vmstat 工具的使用是通过两个数字参数来完成的 第一个参数是采样的时间间隔数,单位是秒 第二个参数是采样的次数

  • procs

    • r : 运行和等待 CPU 时间片的进程数,原则上1核的 CPU 的运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍,否则代表系统压力过大
    • b:等待资源的进程数,比如正在等待磁盘I/O、网络I/O等
  • cpu

    • us:用户进程消耗 CPU 时间片百分比,us 值高,用户进程消耗 CPU 时间多,如果长期大于50%,需要优化程序
    • sy:内核进程消耗的 CPU 时间百分比

    us + sy 参考值为80%,如果 us + sy 大于80%,说明可能存在 CPU 不足

    • id:处于空间的 CPU 百分比
    • wa:系统等待IO的 CPU 时间百分比
    • st:来自于一个虚拟机偷取的 CPU 时间的百分比

查看额外

  • 查看所有CPU核信息 mpstat -P ALL 2 每2秒采样一次 mpstat -P ALL 2 5 每2秒采样一次,共采样5次
    在这里插入图片描述
  • 每个进程使用的CPU用量分解信息 pidstat -u 1 -p 进程编号
    在这里插入图片描述

3. 内存

应用程序可用内存数 free

free -g 内存大小按照 GB 统计 free -m 内存大小按照 MB 统计

在这里插入图片描述

  • 经验 应用程序可用内存/系统物理内存 > 70% 内存充足 < 20% 内存不足,需要增加内存 在20% ~ 70%之间,内存基本够用

查看额外

pidstat -p 进程号 -r 采样间隔秒数

在这里插入图片描述

4. 硬盘

df

df -h 查看磁盘剩余空间

在这里插入图片描述

5. 磁盘IO

iostat

iostat -xdk 2 3

在这里插入图片描述
磁盘块设备分布

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

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

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

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

    rkB/s、wkB/s根据系统应用不同,会有不同的值,但有规律可循:长期、超大数据读写,肯定不正常,需要优化程序读写 svctm 的值与 await 的值很接近,表示几乎没有 I/O 等待,磁盘性能好 如果 await 的值远高于 svctm 的值,则表示 I/O 队列等待太长,需要优化程序或者更换磁盘

查看额外

pidstat -d 采样间隔数 -p 进程号

在这里插入图片描述

6. 网络IO

ifstat

wget http://distfiles.macports.org/ifstat/ifstat-1.1.tar.gz
tar xzvf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure
make
make install

查看命令

ifstat 1

各个网卡的 in、out 观察网络负载情况 程序网络读写是否正常

  • 程序网络I/O优化
  • 增加网络I/O带宽

Mr.superbeyone