free

image.png

  1. total #总量
  2. used #已使用的
  3. free #空闲的
  4. shared #共享内存大小,主要用于进程间通信
  5. buff/cache #buff指的是buffers,用来给块设备做缓存,而cache指的是page cache,用来给打开的文件做缓存,以提高访问文件的速度。
  6. available #这是free命令新加的一个选项。当内存短缺时,系统可用回收buffers和page cache。那么available = free + buffers + page cache对不对呢?其实在现在的Linux内核中,这个公式不完全正确,因为buffers和page cache里并不是所有的内存都可以回收,比如共享内存段、tmpfs和ramfs等都属于不可回收的。所以这个公式应该变成:available = free + buffers + page cache - 不可回收部分。
  1. -b Byte为单位显示内存使用情况
  2. -k KB为单位显示内存使用情况
  3. -m MB为单位显示内存使用情况
  4. -g GB为单位显示内存使用情况
  5. -o 不显示缓冲区调节列
  6. -s<间隔秒数> 持续观察内存使用情况
  7. -t 显示内存总和列
  8. -h 友好模式显示
  9. -V 显示版本信息

df 分别可以查看inode与block

image.png

  1. Filesystem #代表文件系统对应的设备文件的路径名
  2. size #大小多少
  3. used #使用了多少
  4. Avail #剩余的空间大小
  5. Use #磁盘使用率
  6. mounted on #磁盘挂载的目录
  1. -a,--all:全部文件系统列表
  2. -B, --block-size=SIZE:指定分区块大小
  3. -h:人类可阅读的方式显示
  4. -i:以inode模式来显示磁盘使用情况
  5. -k:区块为1024字节
  6. -m:区块为1048576字节
  7. -l:只显示本地文件系统
  8. --no-sync:忽略sync命令
  9. -P:输出格式为POSIX
  10. --sync:在取得磁盘信息前,先执行sync命令
  11. -T:文件系统类型
  12. -t<文件系统类型>只显示指定类型文件系统的磁盘信息
  13. -x<文件系统类型>不示指定类型文件系统的磁盘信息

htop (epel源里才有)

比top看起来更加美观,包名就叫htop

uptime

image.png

  1. 15:55:33 #当前系统时间
  2. up 18:47 #系统已运行时间
  3. 2 users #当前在线用户
  4. load average #平均负载量:一分钟,五分钟,十五分钟系统的负载

iftop(epel)

监控网络流量命令
用于查看网络上的流量情况,包括实时速率、总流量、平均流量等,是一款实时流量监控工具。
Linux常用监控命令 - 图4

  1. 第一行,是带宽,下面带有标尺,用来标示每个连接上的实时流量占用的带宽
  2. 中间部分,是所有的连接,默认显示的是主机名,可以通过参数显示ip,箭头表示数据方向
  3. 中间右侧三列,分别是该连接2s10s40s的平均流量
  4. 底部三行,分别表示发送、接收、汇总的流量
  5. 底部三行第2列,为iftop启动到现在的流量汇总
  6. 底部三行第3列,为峰值速率
  7. 4列,为平均值
  8. 注意,流量单位为bit,非Byte

wget 断点续传

image.png
-c 可以断点续传 —limit-rate 限制下载速度

iostat

主要用于输出磁盘IO 和 CPU的统计信息
image.png

  1. cpu属性值说明:
  2. **%user:**CPU处在用户模式下的时间百分比。
  3. **%nice:**CPU处在带NICE值的用户模式下的时间百分比。
  4. **%system:**CPU处在系统模式下的时间百分比。
  5. **%iowait:**CPU等待输入输出完成时间的百分比。
  6. %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
  7. **%idle:**CPU空闲时间百分比。
  8. disk属性值说明:
  9. 磁盘名称
  10. device:磁盘名称
  11. tps:每秒钟发送到的I/O请求数.
  12. Blk_read/s:每秒读取的block数.
  13. Blk_wrtn/s:每秒写入的block数.
  14. Blk_read:读入的block总数.
  15. Blk_wrtn:写入的block总数.
  1. -c 显示CPU使用情况
  2. -d 显示磁盘使用情况
  3. -N 显示磁盘阵列(LVM) 信息
  4. -n 显示NFS 使用情况
  5. -k KB 为单位显示
  6. -m M 为单位显示
  7. -t 报告每秒向终端读取和写入的字符数和CPU的信息
  8. -V 显示版本信息
  9. -x 显示详细信息
  10. -p:[磁盘] 显示磁盘和分区的情况

iotop

是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息
image.png

  1. version #显示版本号
  2. -h, help #显示帮助信息
  3. -o, only #显示进程或者线程实际上正在做的I/O,而不是全部的,可以随时切换按o
  4. -b, batch #运行在非交互式的模式
  5. -n NUM, iter=NUM #在非交互式模式下,设置显示的次数,
  6. -d SEC, delay=SEC #设置显示的间隔秒数,支持非整数值
  7. -p PID, pid=PID #只显示指定PID的信息
  8. -u USER, user=USER #显示指定的用户的进程的信息
  9. -P, processes #只显示进程,一般为显示所有的线程
  10. -a, accumulated #显示从iotop启动后每个线程完成了的IO总数
  11. -k, kilobytes #以千字节显示
  12. -t, time #在每一行前添加一个当前的时间

vmstat

最常见的Linux/Unix监控工具,属于sysstat包。可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
image.png

netstat -antp

可以查看并发,案例如下
image.png
image.png
使用ab命令压测http,然后使用netstat查看并发

Nethogs

是一个终端下的网络流量监控工具,它有别于其他统计和监控网卡流量工具,特别之处在于可以监控每个进程的网络带宽占用情况,这样可以更直观获取网络使用情况。它支持IPv4和IPv6协议、支持本地网卡及PPP链接。如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况.这样就很容易找出哪个程序跑飞了然后突然占用你的带宽.