free

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

Filesystem #代表文件系统对应的设备文件的路径名size #大小多少used #使用了多少Avail #剩余的空间大小Use #磁盘使用率mounted on #磁盘挂载的目录
-a,--all:全部文件系统列表-B, --block-size=SIZE:指定分区块大小-h:人类可阅读的方式显示-i:以inode模式来显示磁盘使用情况-k:区块为1024字节-m:区块为1048576字节-l:只显示本地文件系统--no-sync:忽略sync命令-P:输出格式为POSIX--sync:在取得磁盘信息前,先执行sync命令-T:文件系统类型-t<文件系统类型>只显示指定类型文件系统的磁盘信息-x<文件系统类型>不示指定类型文件系统的磁盘信息
htop (epel源里才有)
比top看起来更加美观,包名就叫htop
uptime

15:55:33 #当前系统时间up 18:47 #系统已运行时间2 users #当前在线用户load average #平均负载量:一分钟,五分钟,十五分钟系统的负载
iftop(epel)
监控网络流量命令
用于查看网络上的流量情况,包括实时速率、总流量、平均流量等,是一款实时流量监控工具。
第一行,是带宽,下面带有标尺,用来标示每个连接上的实时流量占用的带宽中间部分,是所有的连接,默认显示的是主机名,可以通过参数显示ip,箭头表示数据方向中间右侧三列,分别是该连接2s、10s、40s的平均流量底部三行,分别表示发送、接收、汇总的流量底部三行第2列,为iftop启动到现在的流量汇总底部三行第3列,为峰值速率第4列,为平均值注意,流量单位为bit,非Byte
wget 断点续传
iostat
主要用于输出磁盘IO 和 CPU的统计信息
cpu属性值说明:**%user:**CPU处在用户模式下的时间百分比。**%nice:**CPU处在带NICE值的用户模式下的时间百分比。**%system:**CPU处在系统模式下的时间百分比。**%iowait:**CPU等待输入输出完成时间的百分比。%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。**%idle:**CPU空闲时间百分比。disk属性值说明:磁盘名称device:磁盘名称tps:每秒钟发送到的I/O请求数.Blk_read/s:每秒读取的block数.Blk_wrtn/s:每秒写入的block数.Blk_read:读入的block总数.Blk_wrtn:写入的block总数.
-c: 显示CPU使用情况-d: 显示磁盘使用情况-N: 显示磁盘阵列(LVM) 信息-n: 显示NFS 使用情况-k: 以 KB 为单位显示-m: 以 M 为单位显示-t: 报告每秒向终端读取和写入的字符数和CPU的信息-V: 显示版本信息-x: 显示详细信息-p:[磁盘] 显示磁盘和分区的情况
iotop
是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息
–version #显示版本号-h, –help #显示帮助信息-o, –only #显示进程或者线程实际上正在做的I/O,而不是全部的,可以随时切换按o-b, –batch #运行在非交互式的模式-n NUM, –iter=NUM #在非交互式模式下,设置显示的次数,-d SEC, –delay=SEC #设置显示的间隔秒数,支持非整数值-p PID, –pid=PID #只显示指定PID的信息-u USER, –user=USER #显示指定的用户的进程的信息-P, –processes #只显示进程,一般为显示所有的线程-a, –accumulated #显示从iotop启动后每个线程完成了的IO总数-k, –kilobytes #以千字节显示-t, –time #在每一行前添加一个当前的时间
vmstat
最常见的Linux/Unix监控工具,属于sysstat包。可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
netstat -antp
可以查看并发,案例如下

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

