排查线上问题必备的 6 个 Linux 命令!
点击关注公众号,Java干货及时送达
作者:废物大师兄
来源:www.cnblogs.com/cjsblog/p/9562380.html
1、top
相当于Windows任务管理器
可以看到,输出结果分两部分,前5行是总览,下面是具体的进程资源占用情况。
下面逐行看一下
第1行
top - 18:14:58 up 112 days, 1:35, 1 user, load average: 0.00, 0.10, 0.11
依次表示:当前时间、系统已经运行的时间、当前登录的用户数、系统在过去的1分钟,5分钟,15分钟的负载
PS:从这一行我们可以知道以下信息:
当前时间是18:14:58 系统运行了112天1小时35分钟 当前有1个用户登录 在过去1分钟,5分钟,15分钟的负载分别是0.00, 0.10, 0.11
负载超过1,则表示超负荷
第2行
Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.8%us, 0.9%sy, 0.0%ni, 97.1%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 32879852k total, 23633040k used, 9246812k free, 311552k buffers
可用内存 = free + buffers + cached
Swap: 4194300k total, 255104k used, 3939196k free, 10422508k cached
2、free -m
查看已使用和未使用的内存情况
Mem total = used + free
Swap total = used + free
可用内存 = free + buffers + cached
(-buffers/cache) used内存数 = Mem行中的 used – buffers – cached
(+buffers/cache) free内存数 = Mem行中的 free + buffers + cached
3、iostat
格式:iostat [ 选项 ] [ <时间间隔> [ <次数> ]]
示例:
iostat -d
iostat -d 2 2
iostat -x 1 2
4、netstat
要特别关注一下“ESTABLISHED”的数量,如果ESTABLISHED越多,表示建立的连接越多,如果一直居高不下,那么就要引起注意了,因为系统对打开的连接数是有限制的。另外,Linux 系列面试题整理好了,微信搜索Java技术栈,在后台发送面试可以获取哦。
常见应用:
1、查看连接数最多的IP
netstat -na | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c
2、统计TCP不同状态的连接数
netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
5、df -h
查看文件系统磁盘空间使用情况
6、du -sh
查看(计算)文件大小
还可以这样:du --max-depth=2 --block-size=M
或者:ll --block-size=M
另外,关注公众号Java技术栈,在后台回复:面试,可以获取我整理的 Java/ Linux 系列面试题和答案,非常齐全。
关注Java技术栈看更多干货