排查线上问题常用的几个Linux命令
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: 从这一行我们可以知道以下信息
负载超过1,则表示超负荷 ) 第2行 Tasks: 225 total,? ?1 running,224 sleeping,? ?0 stopped,? ?0 zombie 进程信息
(PS:从这一行我们可以知道,当前总共225个进程) 第3行 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 CPU使用情况 us :?用户进程占用CPU百分比 sy :?内核进程占用CPU百分比 ni : 改变过优先级的进程占用CPU百分比 id : 空闲CPU百分比 wa : IO等待的进程占用CPU百分比 hi :?硬中断占用CPU的百分比 si : 软中断占用CPU的百分比 st :? 第4行 Mem:? 32879852k total,23633040k used,? 9246812k free,? ?311552k buffers 物理内存使用情况
可用内存 = free + buffers + cached 第5行 Swap:? 4194300k total,? ?255104k used,? 3939196k free,10422508k cached 虚拟内存使用情况 其余行 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 iostat 格式:iostat [ 选项 ] [ <时间间隔> [ <次数> ]] 示例: iostat -d iostat -d 2 2 iostat -x 1 2 netstat 要特别关注一下“ESTABLISHED”的数量,如果ESTABLISHED越多,表示建立的连接越多,如果一直居高不下,那么就要引起注意了,因为系统对打开的连接数是有限制的。 常见应用: 1、查看连接数最多的IP netstat -na | grep ESTABLISHED | awk '{print $5}' | awk -F: {print $1}sort | uniq -c ?2、统计TCP不同状态的连接数 netstat -na | /^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}' df -h 查看文件系统磁盘空间使用情况 du -sh 查看(计算)文件大小 还可以这样 du --max-depth=2 --block-size=M 或者 ll --block-size=M 其它相关 《Linux系统打开文件最大数量限制》? ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |