top
相当于Windows任务管理器
![190efae1796ef44b5f2b11596c355552.png](https://i-blog.csdnimg.cn/blog_migrate/14208f02e92eb8341d3087659b0d3f39.jpeg)
可以看到,输出结果分两部分,前5行是总览,下面是具体的进程资源占用情况。下面逐行看一下
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
第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
进程信息
- total 进程总数
- running 运行中的进程数
- sleeping 睡眠中的进程数
- stopped 停止的进程数
- 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 :
![8fbbba0501d2374b1994261456670702.png](https://i-blog.csdnimg.cn/blog_migrate/9723393ebb1c5cee623a2b0df651a1c0.jpeg)
第4行
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
Mem: 32879852k total, 23633040k used, 9246812k free, 311552k buffers
物理内存使用情况
- total 总的内存大小
- used 已使用
- free 未使用
- buffers 内核缓冲区
可用内存 = free + buffers + cached
第5行
Swap: 4194300k total, 255104k used, 3939196k free, 10422508k cached
虚拟内存使用情况
其余行
![6b488dde8b7d99d7f421a7fccf81b1f0.png](https://i-blog.csdnimg.cn/blog_migrate/2cf8364dd3f7e94df0e1e7977b1ba4c1.jpeg)
free -m
查看已使用和未使用的内存情况
![0e414452bd4cf9b1c9247d7ce2fecc28.png](https://i-blog.csdnimg.cn/blog_migrate/39e322eb9043c375fb925db2564bd35d.jpeg)
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
![5361d116d18d8b5d079f84c56d9ef72f.png](https://i-blog.csdnimg.cn/blog_migrate/0c926e2da24bbc3cfe229683c294acd3.jpeg)
格式:iostat [ 选项 ] [ [ ]]
示例:
iostat -d
iostat -d 2 2
iostat -x 1 2
![a6ba2c78d875104090303dd7679166fe.png](https://i-blog.csdnimg.cn/blog_migrate/02514713817ce3fa11b3360c773c0a40.jpeg)
netstat
![53c9a97732ac861a44bc3642f72b9b95.png](https://i-blog.csdnimg.cn/blog_migrate/4b4968cd5f3ddbeb52bb606ee66a2a10.jpeg)
要特别关注一下“ESTABLISHED”的数量,如果ESTABLISHED越多,表示建立的连接越多,如果一直居高不下,那么就要引起注意了,因为系统对打开的连接数是有限制的。
常见应用:
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]}'
df -h
查看文件系统磁盘空间使用情况
![86b1a39d7da87dde97fe988c050753e2.png](https://i-blog.csdnimg.cn/blog_migrate/50107c50dd22051e6d33bc227d94919a.jpeg)
du -sh
查看(计算)文件大小
![643d617122d211eeec53a9b32a40d0d1.png](https://i-blog.csdnimg.cn/blog_migrate/068429a1dab5d8f74d444cd4c685bedd.jpeg)
还可以这样
du --max-depth=2 --block-size=M
或者
ll --block-size=M
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。