gpt4 book ai didi

Linux:内存使用和释放交换内存

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:59:08 25 4
gpt4 key购买 nike

我在我的一台服务器上观察到以下统计数据。

  1. 从 top 命令来看,只有一个进程使用了​​ 15% 的 RAM,没有其他进程
  2. vmstat输出的swap-in&swap-out列全为0

但我仍然看到 Swap 和 RAM 都在“free -m”输出中被完全占用

顶级输出

Mem:  16413804k total, 16390264k used,    23540k free,    59604k buffers
Swap: 2040244k total, 2040244k used, 0k free, 584688k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10984 mysql 15 0 3100m 2.4g 5472 S 0 15.5 1129:44 mysqld
12773 root 16 0 18440 7916 1064 S 0 0.0 65:46.67 IPremoted
3108 ntp 16 0 18984 5720 4652 S 0 0.0 54:35.78 ntpd
19694 root 16 0 48996 5708 3656 S 0 0.0 0:00.03 sshd
11084 hpsmh 17 0 371m 3892 2532 S 0 0.0 0:00.00 hpsmhd

自由-m输出

    total  used    free   shared   buffers   cached
Mem:16029 15983 46 0 52 546
-/+ buffers/cache:
15384 644
Swap:1992 1992 0

vmstat 输出

 swap usage
si so
0 0
0 0
0 0
0 0
0 0
0 0
0 0

谁能解释一下这种情况?

提前致谢。

最佳答案

首先,您在使用以下脚本时会发现哪个进程正在使用交换空间。

#!/bin/bash
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
PID=`echo $DIR | cut -d / -f 3`
PROGNAME=`ps -p $PID -o comm --no-headers`
for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
do
let SUM=$SUM+$SWAP
done
echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
let OVERALL=$OVERALL+$SUM
SUM=0

done
echo "Overall swap used: $OVERALL"

然后执行下面的操作swapoff -a一旦交换被清除然后swapon-a

谢谢-阿伦

关于Linux:内存使用和释放交换内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21084572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com