swap 简介:

Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。

那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,

等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

 

查看进程 swap 占用情况

1、命令: 

for i in $( cd /proc;ls |grep "^[0-9]"|awk ' $0 >100') ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr | head -10




# head -10 表示 取出 前10个内存占用高的进程

# 取出的第一列为进程的id   第二列进程占用swap大小

 

2、根据进程id  查看是哪个进程

ps -ef | grep 进程id

 

查看进程占用内存的情况

1、查看具体进程占用

top -p 进程id

# 查看进程内存占用、cpu占用等信息

2、查看进程内,具体的线程占用情况

top -H -p 进程id

# 如 top -H -p 23194

 

3、转换线程Id 

printf "%x\n" 进程id   

# 如转换出来为:5aa3

4、使用jstack打印进程堆栈信息

jstack -l 进程id

5、根据转换出来的线程id,查看线程执行信息

jstack 进程id | grep 进程id -A 30

# 如 jstack 23194| grep 5aa3 -A 30

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐