以下命令以Ubuntu 18.04 LTS 零碎为准。
命令 | 性能 | 实例 | |
---|---|---|---|
free | 查看内存应用状况,包含物理内存和虚拟内存 | free -h 或 free -m | |
vmstat | 对系统的整体状况进行统计,包含内核过程、虚拟内存、磁盘、陷阱和 CPU 流动的统计信息 | vmstat 2 100 | |
top | 实时显示零碎中各个过程的资源占用情况及总体情况 | top | |
mpstat | 实时系统监控工具,它会报告与CPU相干的统计信息 | mpstat | |
sar | 收集、报告和保留CPU、内存、输入输出端口应用状况 | sar -n DEV 3 100 | |
netstat | 测验本机各端口的网络连接状况,用于显示与IP、TCP、UDP和ICMP协定相干的统计数据 | netstat -a | |
tcpdump | 用于捕获或者过滤网络上指定接口上接管或者传输的TCP/IP包 | tcpdump -i eth0 -c 3 | |
iptraf | 用来生成包含TCP信息、UDP计数、ICMP和OSPF信息、以太网负载信息、节点状态信息、IP校验和谬误等等统计数据 | iptraf | |
iostat | 收集显示零碎存储设备输出和输入状态统计 | iostat -x -k 2 100 | |
lsof | 查看过程关上的文件的工具,查看监听端口 | lsof -i :3000 | |
atop | 显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的状况下进行了黑白标注 | atop | |
htop | 它和top命令十分相似,高级的交互式的实时linux过程监控工具 | htop | |
ps | 最根本同时也是十分弱小的过程查看命令 | ps aux | grep php |
glances | 监督 CPU,均匀负载,内存,网络流量,磁盘 I/O,其余处理器 和 文件系统 空间的利用状况 | glances | |
dstat | 全能零碎信息统计工具,可用于替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具 | dstat | |
uptime | 用于查看服务器运行了多长时间以及有多少个用户登录,疾速获知服务器的负荷状况 | uptime | |
dmesg | 次要用来显示内核信息。应用dmesg能够无效诊断机器硬件故障或者增加硬件呈现的问题 | dmesg | |
mpstat | 用于报告多路CPU主机的每颗CPU流动状况,以及整个主机的CPU状况 | mpstat 2 3 | |
nmon | 监控CPU、内存、I/O、文件系统及网络资源。对于内存的应用,它能够实时的显示 总/残余内存、替换空间等信息 | nmon | |
mytop | 用于监控 mysql 的线程和性能。它能让你实时查看数据库以及正在解决哪些查问 | mytop | |
iftop | 用来监控网卡的实时流量(能够指定网段)、反向解析IP、显示端口信息等 | iftop | |
jnettop | 以雷同的形式来监测网络流量但比 iftop 更形象。它还反对自定义的文本输入,并能以敌对的交互方式来深度剖析日志 | jnettop | |
ngrep | 网络层的 grep。它应用 pcap ,容许通过指定扩大正则表达式或十六进制表达式来匹配数据包 | ngrep | |
nmap | 能够扫描你服务器凋谢的端口并且能够检测正在应用哪个操作系统 | nmap localhost | |
du | 查看Linux零碎中某目录的大小 | du -sh * | |
fdisk | 查看硬盘及分区信息 | fdisk -l |
内存监控
free
free
命令能够显示以后零碎未应用的和已应用的内存数目,还能够显示被内核应用的内存缓冲区。
语法
free (选项)
罕用选项:-b
:以Byte为单位显示内存应用状况;-k
:以KB为单位显示内存应用状况;-m
:以MB为单位显示内存应用状况;-g
:以GB为单位显示内存应用状况;-o
:不显示缓冲区调节列;-t
:显示内存总和列;-V
:显示版本信息。
字段阐明:
- total:内存总数;
- used:曾经应用的内存数,包含 cached 和应用程序理论应用的内存;
- free:闲暇的内存数;
- shared:以后曾经废除不必;
- buffers:缓存内存数;
- cached:缓存内存数。
关系:total = used + free
vmstat
vmstat命令 的含意为显示虚拟内存状态(“Viryual Memor Statics”),然而它能够报告对于过程、内存、I/O等零碎整体运行状态。
语法
vmstat (选项) (参数)
选项-a
:显示流动内页;-f
:显示启动后创立的过程总数;-m
:显示slab信息;-n
:头信息仅显示一次;-s
:以表格形式显示事件计数器和内存状态;-d
:报告磁盘状态;-p
:显示指定的硬盘分区状态;-S
:输入信息的单位。
参数
- 事件间隔:状态信息刷新的工夫距离;
- 次数:显示报告的次数。
字段阐明:
Procs(过程)
- r: 运行和期待CPU工夫片的过程数,这个值如果长期大于零碎CPU个数,就阐明CPU资源有余,能够思考减少CPU
- b: 期待资源的过程数,比方正在期待I/O或者内存替换等
Memory(内存)
- swpd: 应用虚拟内存大小,如果swpd的值不为0,然而SI,SO的值长期为0,这种状况不会影响零碎性能。
- free: 闲暇物理内存大小(以KB为单位)。
- buff: 用作缓冲的内存大小。
- cache: 用作缓存的内存大小,如果cache的值大的时候,阐明cache处的文件数多。如果此时IO中的bi比拟小,就阐明文件系统效率比拟好。
Swap
- si: 每秒从替换区写到内存的大小,由磁盘调入内存。
- so: 每秒写入替换区的内存大小,由内存调入磁盘。
留神:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,零碎性能会受到影响,磁盘IO和CPU资源都会被耗费。有些敌人看到闲暇内存(free)很少的或靠近于0时,就认为内存不够用了,不能光看这一点,还要联合si和so,如果free很少,然而si和so也很少(大多时候是0),那么不必放心,零碎性能这时不会受到影响的。
IO(当初的Linux版本块的大小为1kb)
- bi: 每秒读取的块数
- bo: 每秒写入的块数
留神:随机磁盘读写的时候,这2个值较大(如超出1024k),而且wa值比拟大,则示意零碎磁盘IO性能瓶颈。
system(零碎)
- in: 每秒中断数,包含时钟中断。
- cs: 每秒上下文切换数。
留神:下面2个值越大,会看到由内核耗费的CPU工夫会越大。
CPU(以百分比示意)
us: 用户过程执行工夫百分比(user time)
us的值比拟高时,阐明用户过程耗费的CPU工夫多,然而如果长期超50%的应用,那么咱们就该思考优化程序算法或者进行减速。
- sy: 内核零碎过程执行工夫百分比(system time)
sy的值高时,阐明零碎内核耗费的CPU资源多,这并不是良性体现,咱们应该查看起因。
- id: 闲暇工夫百分比
- wa: IO等待时间百分比
wa的值高时,阐明IO期待比较严重,这可能因为磁盘大量作随机拜访造成,也有可能磁盘呈现瓶颈(块操作)。
- st:个别不关注,虚拟机占用的工夫百分比。
CPU 监控
top
top命令 能够实时动静地查看零碎的整体运行状况。
语法:
top (选项)
选项:-b
:以批处理模式操作;-c
:显示残缺的治命令;-d
:屏幕刷新间隔时间;-I
:疏忽生效过程;-s
:窃密模式;-S
:累积模式;-i<工夫>
:设置间隔时间;-u<用户名>
:指定用户名;-p<过程号>
:指定过程;-n<次数>
:循环显示的次数。
字段阐明:
top
:零碎以后工夫up xxx days
:零碎运行工夫1 users
:以后登录用户个数load average
:零碎负载。即工作队列的均匀长度。三个数值别离为最近1分钟、最近5分钟、最近15分钟的均匀负载。——超过N(CPU核数)阐明零碎满负荷运行。Tasks
total
:总过程数running
:正在运行的过程数sleeping
:睡眠的过程数stopped
:进行的过程数zombie
:解冻的过程数
%Cpu(s)
us
:用户过程耗费的CPU百分比sy
:内核过程耗费的CPU百分比ni
:扭转过优先级的过程占用CPU的百分比id
:闲暇CPU的百分比wa
:IO期待耗费的CPU百分比
Mem
total
:物理内存总量free
:闲暇物理内存总量used
:已用物理内存总量buff
:用作内核缓存内存总量
Swap
total
:虚拟内存总量free
:闲暇虚拟内存总量used
:已用虚拟内存总量
mpstat
mpstat命令 指令次要用于多CPU环境下,它显示各个可用CPU的状态系你想。
语法:
mpstat (选项) (参数)
选项:
-P:指定CPU编号。
参数:
- 间隔时间:每次报告的间隔时间(秒);
- 次数:显示报告的次数。
ALL示意显示所有CPUs,也能够指定某个CPU;2示意刷新距离。
网络监控
sar
sar命令 是Linux下零碎运行状态统计工具,它将指定的操作系统状态计数器显示到规范输出设备。
字段阐明:
IFACE
:网络设备的名称rxpck/s
:每秒钟接管到的包数目txpck/s
:每秒钟发送进来的包数目rxkB/s
:每秒钟接管到的字节数txkB/s
:每秒钟发送进来的字节数
netstat
netstat命令个别用于测验本机各端口的网络连接状况,用于显示与IP、TCP、UDP和ICMP协定相干的统计数据。
罕用实例:
netstat -aup # 输入所有UDP连贯情况netstat -atp # 输入所有TCP连贯情况netstat -s # 显示各个协定的网络统计信息netstat -i # 显示网卡列表netstat -r # 显示路由表信息netstat -l # 只显示监听端口netstat -lt # 只列出所有监听 tcp 端口netstat -lu # 只列出所有监听 udp 端口netstat -lx # 只列出所有监听 UNIX 端口
磁盘监控
df
df命令 用于显示磁盘分区上的可应用的磁盘空间。如果没有文件名被指定,则显示以后所有被挂载的文件系统,默认以 KB 为单位。
语法:
df (选项) (参数)
选项:-a
全副文件系统列表-h
以不便浏览的形式显示-i
显示inode信息-T
显示文件系统类型-l
只显示本地文件系统-k
以KB为单位-m
以MB为单位
参数:
- 文件:指定文件系统上的文件。
iostat
iostat命令 被用于监视系统输入输出设施和CPU的应用状况。
语法:
iostat (选项) (参数)
选项:-c
:仅显示CPU应用状况;-d
:仅显示设施利用率;-k
:显示状态以千字节每秒为单位,而不应用块每秒;-m
:显示状态以兆字节每秒为单位;-p
:仅显示块设施和所有被应用的其余分区的状态;-t
:显示每个报告产生时的工夫;-V
:显示版号并退出;-x
:显示扩大状态。
参数:
- 间隔时间:每次报告的间隔时间(秒);
- 次数:显示报告的次数。
字段阐明:
r/s
: 每秒实现的读 I/O 设施次数。w/s
: 每秒实现的写 I/O 设施次数。rkB/s
: 每秒读K字节数.是 rsect/s 的一半,因为每扇区大小为512字节。wkB/s
: 每秒写K字节数.是 wsect/s 的一半。avgrq-sz
: 均匀每次设施I/O操作的数据大小 (扇区)。avgqu-sz
: 均匀I/O队列长度。await
: 均匀每次设施I/O操作的等待时间 (毫秒)。svctm
: 均匀每次设施I/O操作的服务工夫 (毫秒)。%util
: 一秒中有百分之多少的工夫用于 I/O 操作,或者说一秒中有多少工夫 I/O 队列是非空的。
iotop
iotop命令 是一个用来监督磁盘I/O应用情况的top类工具。
iotop具备与top类似的UI,其中包含PID、用户、I/O、过程等相干信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设施的读写状况,如果你想晓得每个过程是如何应用IO的就比拟麻烦,应用iotop命令能够很不便的查看。
语法:
iotop (选项)
选项:-o
:只显示有io操作的过程-b
:批量显示,无交互,次要用作记录到文件。-n
: NUM:显示NUM次,次要用于非交互式模式。-d SEC
:距离SEC秒显示一次。-p PID
:监控的过程pid。-u USER
:监控的过程用户。
iotop罕用快捷键:
- 左右箭头:扭转排序形式,默认是按IO排序。
- r:扭转排序程序。
- o:只显示有IO输入的过程。
- p:过程/线程的显示方式的切换。
- a:显示累积使用量。
- q:退出。
过程
ps
ps(Process Status,过程状态)命令 用于报告以后零碎的过程状态。
ps 的用法十分多,这里仅列举一些罕用的:
ps -aux | grep <name> # 查看name 过程详细信息ps -p <pid> -L # 显示过程<pid> 的所有线程ps -o lstart <pid> # 显示过程的启动工夫ps -f --forest -C <name> # 用树的格调显示过程的档次关系ps -e -o pid,uname,pcpu,pmem,comm,etime # 定制显示的列ps -o lstart <pid> # 显示过程的启动工夫
系统监控全能工具
glances
glances 是一个用来监督 GNU/Linux 和 FreeBSD 操作系统的 GPL 受权的全能工具。
Glances 会用一下几种色彩来代表状态:
- 绿色:OK(一切正常)
- 蓝色:CAREFUL(须要留神)
- 紫色:WARNING(正告)
- 红色:CRITICAL(重大)。
阀值能够在配置文件中设置,个别阀值被默认设置为(careful=50、warning=70、critical=90)。
dstat
dstat命令 是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具。
间接应用dstat,默认应用的是-cdngy参数,别离显示cpu、disk、net、page、system信息,默认是1s显示一条信息。
参考链接
- Linux系统监控命令整顿汇总-把握CPU,内存,磁盘IO等找出性能瓶颈