스왑 사용량이 너무 높습니까?


9

약 한 달 전에 새로 설치 한 데비안 시드 상자가 있는데 현재 데스크탑 앱이 실행되고 있지 않습니다.

ssh를 통해 실행하려고하면 명령이 하드 디스크 작동을 매우 어렵게 만듭니다. Ubuntu 8.04를 실행하는 동안 몇 주 전에 시스템이 완벽하게 작동했습니다. 하드웨어에 문제가없고, 스마트 도구가 문제를보고하지 않으며, 메모리 검사 등이 없어야합니다.

문제가 스와핑과 관련이 있다고 생각합니다.

$ free -h
             total       used       free     shared    buffers     cached
Mem:          998M       986M        12M         0B       464K       904M
-/+ buffers/cache:        81M       917M
Swap:         511M       511M         0B

테스트 결과, 대부분의 물리적 램이 캐시에 사용되지만 재부팅하지 않고 스왑을 비활성화 할 수 없음을 알았습니다.

# swapoff  -a
swapoff: /swapfile: swapoff failed: Cannot allocate memory

stackoverflow answer에 언급 된 스크립트를 실행할 때 가장 높은 스왑 사용 프로세스는 거의 1.5megs를 사용하지 않았으며 총 수는 다음과 같습니다.

"Overall swap used: 18376 kB"

... 그것이 멈추거나 무료로보고있는 반 공연과는 거리가 멀다.

나는 변화 시도 swappiness1반 한 달 전에,하지만 차이 (동일한 메모리 사용 패턴)이 없습니다.

범인이 될 수있는 아이디어가 있습니까?

편집 : 여기 /proc/meminfo내용이 있습니다 (유사한 상황이지만 904 대신 702megs의 캐시가 있으며 크롬은 여전히 ​​열려 있습니다).

MemTotal:        1022464 kB
MemFree:           14344 kB
Buffers:             192 kB
Cached:           719816 kB
SwapCached:         2212 kB
Active:           304304 kB
Inactive:         657344 kB
Active(anon):     294128 kB
Inactive(anon):   651264 kB
Active(file):      10176 kB
Inactive(file):     6080 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:        127336 kB
HighFree:            316 kB
LowTotal:         895128 kB
LowFree:           14028 kB
SwapTotal:        524284 kB
SwapFree:              0 kB
Dirty:                 4 kB
Writeback:             0 kB
AnonPages:        239528 kB
Mapped:            11968 kB
Shmem:            703760 kB
Slab:              28924 kB
SReclaimable:      12116 kB
SUnreclaim:        16808 kB
KernelStack:        2200 kB
PageTables:         5812 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1035516 kB
Committed_AS:    2193368 kB
VmallocTotal:     122880 kB
VmallocUsed:       14092 kB
VmallocChunk:     105548 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      911352 kB
DirectMap2M:           0 kB

그리고 여기의 top -b -n 1출력은 :

top - 22:00:18 up 1 day,  2:34,  4 users,  load average: 1,97, 1,25, 0,88
Tasks: 137 total,   3 running, 134 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4,9 us,  3,0 sy,  2,7 ni, 83,2 id,  6,1 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:   1022464 total,  1008788 used,    13676 free,      188 buffers
KiB Swap:   524284 total,   524284 used,        0 free,   719792 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM     TIME+ COMMAND
 7861 stenyak   20   0  6336 1252  976 R  18,0  0,1   0:00.03 top
 5194 isabel    30  10 44372 5344 1404 R  12,0  0,5   0:36.11 glmatrix
17940 root      20   0  103m 6844 2828 S   6,0  0,7  11:02.21 Xorg
    1 root      20   0  2280   28    0 S   0,0  0,0   0:02.49 init
    2 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S   0,0  0,0   0:15.25 ksoftirqd/0
    5 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kworker/u:0
    6 root      rt   0     0    0    0 S   0,0  0,0   0:00.93 migration/0
    7 root      rt   0     0    0    0 S   0,0  0,0   0:00.46 watchdog/0
    8 root      rt   0     0    0    0 S   0,0  0,0   0:00.73 migration/1
   10 root      20   0     0    0    0 S   0,0  0,0   0:17.30 ksoftirqd/1
   12 root      rt   0     0    0    0 S   0,0  0,0   0:00.43 watchdog/1
   13 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 cpuset
   14 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 khelper
   15 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kdevtmpfs
   16 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 netns
   17 root      20   0     0    0    0 S   0,0  0,0   0:00.44 sync_supers
   18 root      20   0     0    0    0 S   0,0  0,0   0:00.00 bdi-default
   19 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 kintegrityd
   20 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 kblockd
   22 root      20   0     0    0    0 S   0,0  0,0   0:00.07 khungtaskd
   23 root      20   0     0    0    0 D   0,0  0,0   2:50.47 kswapd0
   24 root      25   5     0    0    0 S   0,0  0,0   0:00.00 ksmd
   25 root      20   0     0    0    0 S   0,0  0,0   0:00.00 fsnotify_mark
   26 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 crypto
   99 root      20   0     0    0    0 S   0,0  0,0   0:00.00 khubd
  115 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 ata_sff
  116 root      20   0     0    0    0 S   0,0  0,0   0:00.00 scsi_eh_0
  117 root      20   0     0    0    0 S   0,0  0,0   0:00.00 scsi_eh_1
  118 root      20   0     0    0    0 S   0,0  0,0   0:01.66 kworker/u:1
  152 root      20   0     0    0    0 S   0,0  0,0   0:02.12 jbd2/sda1-8
  153 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 ext4-dio-unwrit
  280 root      20   0  2944  352  128 S   0,0  0,0   0:00.30 udevd
  423 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 hd-audio0
 1286 root      20   0     0    0    0 S   0,0  0,0   0:07.06 jbd2/sda2-8
 1287 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 ext4-dio-unwrit
 1561 root      20   0     0    0    0 S   0,0  0,0   0:03.09 flush-8:0
 1603 root      20   0  2376   48    0 S   0,0  0,0   0:00.33 rpcbind
 1634 statd     20   0  2648   68   64 S   0,0  0,0   0:00.00 rpc.statd
 1639 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 rpciod
 1641 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 nfsiod
 1648 root      20   0  2576    0    0 S   0,0  0,0   0:00.00 rpc.idmapd
 2019 root      20   0 29088  976    0 S   0,0  0,1   0:22.26 rsyslogd
 2123 root      20   0  1876   84   24 S   0,0  0,0   0:00.23 acpid
 2161 message+  20   0  3756  728    0 S   0,0  0,1   0:02.06 dbus-daemon
 2213 daemon    20   0  2152   20    0 S   0,0  0,0   0:00.00 atd
 2231 root      20   0  4488  220  128 S   0,0  0,0   0:00.00 bluetoothd
 2242 root      10 -10     0    0    0 S   0,0  0,0   0:00.00 krfcommd
 2259 avahi     20   0  3272  292  168 S   0,0  0,0   0:00.66 avahi-daemon
 2262 avahi     20   0  3156   24    0 S   0,0  0,0   0:00.00 avahi-daemon
 2265 root      20   0  5968  180  152 S   0,0  0,0   0:00.00 bitlbee
 2271 root      20   0     0    0    0 S   0,0  0,0   0:11.69 kworker/0:2
 2304 root      20   0 19056  700  220 S   0,0  0,1   0:00.75 NetworkManager
 2334 root      20   0  5536  176  108 S   0,0  0,0   0:02.86 cron
 2350 root      20   0  6700  492  152 S   0,0  0,0   0:00.01 sudo
 2351 root      20   0 15304 5880 1428 R   0,0  0,6  61:42.79 iotop
 2359 root      20   0 24256  600   56 S   0,0  0,1   0:01.12 polkitd
 2390 root      20   0  6892  368  180 S   0,0  0,0   0:00.15 modem-manager
 2392 root      20   0  7536   80    0 S   0,0  0,0   0:00.13 cupsd
 2396 root      20   0 20964  516  296 S   0,0  0,1   0:00.15 gdm3
 2712 root      20   0 10068  196   84 S   0,0  0,0   0:11.72 kerneloops
 2714 root      20   0  6896 2108  372 S   0,0  0,2   0:05.69 ddclient - slee
 2802 Debian-+  20   0  7424  100   40 S   0,0  0,0   0:00.05 exim4
 2877 daemon    20   0  1868  236  172 S   0,0  0,0   0:01.22 uptimed
 2881 root      20   0  6464  208  104 S   0,0  0,0   0:00.27 sshd
 2913 root      20   0  1848   72    8 S   0,0  0,0   0:00.00 minissdpd
 2936 root      20   0  4328   40   36 S   0,0  0,0   0:00.00 getty
 2937 root      20   0  4328   40   36 S   0,0  0,0   0:00.00 getty
 2938 root      20   0  4328   40   36 S   0,0  0,0   0:00.00 getty
 2939 root      20   0  4328   40   36 S   0,0  0,0   0:00.00 getty
 2940 root      20   0  4328   40   36 S   0,0  0,0   0:00.00 getty
 2941 root      20   0  4328   40   36 S   0,0  0,0   0:00.00 getty
 2961 root      20   0 23384  540  156 S   0,0  0,1   0:00.88 accounts-daemon
 2965 root      20   0 29216  292   64 S   0,0  0,0   0:01.35 console-kit-dae
 3050 root      20   0 27408  320    0 S   0,0  0,0   0:00.48 upowerd
 3115 stenyak   20   0  6260  320   84 S   0,0  0,0   0:00.51 screen
 3119 stenyak   20   0  6260  248   40 S   0,0  0,0   0:00.61 screen
 3121 stenyak   20   0  6260  132   16 S   0,0  0,0   0:00.48 screen
 3124 stenyak   20   0  6388 1004  572 S   0,0  0,1   1:33.81 p2p.sh
 3125 stenyak   20   0 34176 5604 1764 S   0,0  0,5   1:57.10 quasselcore
 3129 stenyak   20   0 55268 2972  652 S   0,0  0,3   3:00.32 bot.py
 3280 rtkit     21   1 18980  180   64 S   0,0  0,0   0:01.23 rtkit-daemon
 3367 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kauditd
 3684 root      20   0  2940  340  112 S   0,0  0,0   0:00.00 udevd
 3685 root      20   0  2940  208    0 S   0,0  0,0   0:00.00 udevd
 5845 root      20   0  6444  904  592 S   0,0  0,1   0:00.00 cron
 5876 stenyak   20   0  1932  428  368 S   0,0  0,0   0:00.00 sh
 5878 stenyak   20   0  6048 1232 1080 S   0,0  0,1   0:00.00 memmon.sh
 7857 stenyak   20   0  5060  508  448 S   0,0  0,0   0:00.00 sleep
 9071 root      20   0  9816  860  200 S   0,0  0,1   0:00.10 sshd
 9080 stenyak   20   0 10180 1112  136 S   0,0  0,1   0:06.93 sshd
 9081 stenyak   20   0  9280 3232  148 S   0,0  0,3   0:00.62 bash
 9436 root      20   0  7396 1188  684 S   0,0  0,1   0:07.05 bitlbee
10285 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kworker/1:0
12728 stenyak   20   0  7960 2960  648 S   0,0  0,3  23:35.01 htop
12950 root      20   0  9832   80   76 S   0,0  0,0   0:00.08 sshd
12955 stenyak   20   0  9832    0    0 S   0,0  0,0   0:00.04 sshd
12956 stenyak   20   0  9304   36   32 S   0,0  0,0   0:00.64 bash
17939 root      20   0 23284 1080  320 S   0,0  0,1   0:00.11 gdm-simple-slav
18062 root      20   0 29808  964  364 S   0,0  0,1   0:00.38 gdm-session-wor
20066 root      20   0     0    0    0 S   0,0  0,0   0:09.72 kworker/0:0
28369 isabel    20   0  1932  112  108 S   0,0  0,0   0:00.03 sh
28404 isabel    20   0  3868  260   68 S   0,0  0,0   0:00.20 ssh-agent
28407 isabel    20   0  3516    0    0 S   0,0  0,0   0:00.00 dbus-launch
28408 isabel    20   0  3420  304  116 S   0,0  0,0   0:00.24 dbus-daemon
28416 isabel    20   0  6344  744  548 S   0,0  0,1   0:00.29 xfconfd
28422 isabel    20   0  8336  496  248 S   0,0  0,0   0:01.46 xscreensaver
28424 isabel    20   0 21932  580  340 S   0,0  0,1   0:00.17 xfce4-session
28430 isabel    20   0 24392 2032 1160 S   0,0  0,2   0:16.32 xfwm4
28432 isabel    20   0  117m 2072  908 S   0,0  0,2   0:01.26 xfce4-panel
28434 isabel    20   0 22520  256  256 S   0,0  0,0   0:00.06 Thunar
28436 isabel    20   0 21016  688  460 S   0,0  0,1   0:00.06 xfsettingsd
28437 isabel    20   0  119m 3344 1312 S   0,0  0,3   0:03.50 xfdesktop
28441 isabel    20   0 21072  272  268 S   0,0  0,0   0:00.07 kerneloops-appl
28443 isabel    20   0 29816  540  228 S   0,0  0,1   0:00.10 polkit-gnome-au
28450 isabel    20   0  263m  544  276 S   0,0  0,1   0:00.30 xfce4-volumed
28452 isabel    20   0 63936  488    0 S   0,0  0,0   0:00.31 tracker-store
28457 isabel    20   0 23240  768  472 S   0,0  0,1   0:00.18 xfce4-settings-
28460 isabel     9 -11 99532  500  248 S   0,0  0,0   0:00.38 pulseaudio
28470 isabel    20   0 21936  612  312 S   0,0  0,1   0:00.20 panel-6-systray
28472 isabel    20   0  339m 1348  552 S   0,0  0,1   0:00.42 xfce4-mixer-plu
28473 isabel    20   0 22028 2292 1740 S   0,0  0,2   0:59.33 xfce4-oragecloc
28514 isabel    20   0  371m  21m 2428 S   0,0  2,1   3:46.22 chromium
28517 isabel    20   0  111m 3020  288 S   0,0  0,3   0:00.58 chromium
28518 isabel    20   0  1948   64    0 S   0,0  0,0   0:00.00 chromium-sandbo
28519 isabel    20   0  120m 3324  288 S   0,0  0,3   0:00.20 chromium
28522 isabel    20   0  128m 3252  204 S   0,0  0,3   0:00.01 chromium
28558 isabel    20   0  208m  52m  476 S   0,0  5,3   1:25.92 chromium
28573 isabel    20   0  271m 103m 1244 S   0,0 10,3   3:01.64 chromium
28693 isabel    20   0  120m 3836  628 S   0,0  0,4   0:43.86 chromium
28696 isabel    20   0 83088 6412  108 S   0,0  0,6   0:16.55 GoogleTalkPlugi
28706 isabel    20   0  159m 6896  972 S   0,0  0,7   9:00.72 chromium
32332 root      20   0     0    0    0 S   0,0  0,0   0:06.24 kworker/1:2
32351 stenyak    9 -11 99108 1032  192 S   0,0  0,1   0:00.51 pulseaudio
32455 root      20   0  9816  108   76 S   0,0  0,0   0:00.11 sshd
32460 stenyak   20   0  9992  264  144 S   0,0  0,0   0:07.43 sshd
32462 stenyak   20   0  9300 1976  108 S   0,0  0,2   0:01.31 bash

swappiness? 이외의 다른 매개 변수를 변경 했습니까 ?
David Schwartz

기계가 가득 찼습니다. 사용은 top현명한 어떤 폭주 프로세스 메모리를 찾은를 다시 시작합니다.
Thorbjørn Ravn Andersen 님이

@DavidSchwartz no, 중요하지 않은 것들 (예 : munin, apache ...)을 제거하는 것 외에는 다른 작업이 없었습니다.
STENyaK

@ ThorbjørnRavnAndersen 프로세스가 절반 의 메모리에 가깝지 않은 그 정도의 메모리 (VIRT, RES 또는 SHR 없음)를 사용하지 않으므로 어떤 것을 죽일 지 전혀 모릅니다. 다시 사용 된 총 메모리-/ + buffers / cache는 단지 81megs입니다 (실제 프로세스에서는 18megs의 스왑 만 사용됩니까?).
STENYAK

완전히 사용한 511MB 스왑 파티션이 있습니다! 뿐만 아니라 18. 신뢰 free.
Thorbjørn Ravn Andersen

답변:


4

RAM이 스왑 된 메모리 양을 초과 할 수 없기 때문에 스왑 오프 할 수 없습니다. 합법적 인 오류 메시지가 나타납니다.

작은 스 니펫.

if (!quiet || errno == ENOMEM)
    warn(_("%s: swapoff failed"), orig_special);

return -1;

내 의견으로는, 워크로드는 RAM 수요를 증가시킵니다. 더 많은 메모리가 필요한 워크로드를 실행 중입니다. 전체 스왑의 사용은이를 나타냅니다. 또한 swappiness를 1로 변경하는 것은 현명한 결정이 아닐 수 있습니다. swappiness를 1로 설정한다고해서 교체가 수행되지는 않습니다. 스와핑과 관련하여 커널이 얼마나 적극적인지를 나타내며 스와핑을 제거하지는 않습니다. 교체가 필요한 경우 스와핑이 발생합니다.

또한, 왜 당신이 스왑을 비활성화하려고하는지 모르겠습니다. 많은 양의 RAM이 없으면 스왑을 비활성화하지 않아야합니다.

물론 재부팅 할 수 있으며 스왑 사용량은 0이됩니다. 그리고 안전하게 교환 할 수 있습니다. 그러나 이것이 장기적으로 문제를 해결하지는 못합니다.

/proc/meminfo출력을 게시 하시겠습니까?


스왑이 다시 채워질 때까지 기다리고 있습니다 (요즘 컴퓨터 사용량에 따라 다름). 나는 비활성화 스왑 시도 더 많은 RAM이 필요할 때 RAM 캐시가 감소 될 경우, 캐시의 그 904megs 폐기해야 내가 인터넷에서 읽은 내용에서 (체크 / 시도하기 위해, 나는 순서 RAM의 511megs 필요 했어 스왑을 비활성화하려면).
STenyaK

어제 스왑이 다시 채워졌습니다. 사용자가 컴퓨터를 다시 부팅하기 전에 cron-ed 스크립트가 일부 정보를 기록하여 원래 질문으로 편집했습니다. 희망이 도움이됩니다.
STENYAK

3

가능한 이유 중 하나는 예를 들어 메모리로 백업 된 파일 시스템에 /tmp마운트 되기 때문입니다 tmpfs.

이 경우 ( df -hT /tmp), 거기에 남아있는 파일을 제거 / 이동하면 응용 프로그램이 / tmp (또는 tmpfs:에 마운트 된 파일 시스템)를 다시 채우지 않아야합니다 df -ht tmpfs.이 문제가 해결됩니다.


좋은 지적. 데이터 tmpfs는 일반적으로 캐시 된 것으로 표시됩니다 .
Stéphane Chazelas

몰랐어! df -ht tmpfs --totalcron-ed 디버그 스크립트에 추가 했습니다. 다음에 문제가 발생하면 출력을 게시합니다. 한 가지 질문 : Used열이나 열에 대해 걱정해야 Size합니까?
STenyaK

used열은 파일이 사용한 메모리 크기를보고합니다. 이러한 파일을 제거하면 메모리가 비워집니다.
jlliagre

1

시스템이 스왑으로 메모리를 스왑 아웃하고 대신 버퍼에 메모리를 사용하는 경우 실제로 나쁘지는 않습니다. 이것은 아마도 두 가지를 나타냅니다.

  • 많이 사용되지 않는 많은 응용 프로그램이 실행되고 있습니다 (~ 500MB)
  • 보유한 1GB의 RAM보다 많은 데이터를 읽고 쓰는 다른 응용 프로그램을 사용합니다. 시스템은 빠른 액세스를 위해 메모리에 하드 디스크 데이터를 버퍼링하여 이러한 응용 프로그램의 성능을 향상 시키려고합니다.

예, ~ 600MB의 메모리 만 사용중인 것 같습니다. 시스템 스왑의 원인은 메모리를 과도하게 사용하는 응용 프로그램이 아니라 버퍼에 부딪히는 매우 많은 I / O 워크로드입니다. 모든 I / O를 수행하는 프로세스를 식별 할 수 있습니까? 서버를 무엇을 사용하고 있습니까?


메모리 사용량 이 적을 때 실행 되는 유일한 그래픽 응용 프로그램은 gdm3입니다. 이전에는 (사용자가 로그 아웃하기 전) xfce 데스크톱이 실행되었으며 위젯은 거의 없었으며 작업 관리자에는 크롬 브라우저 만 표시되었습니다. 다시 발생하면 iotop을 사용하여 I / O 집중 프로세스를 찾습니다. 제안 해 주셔서 감사합니다.
STenyaK

I / O의 무거움 자체가 스와핑을 초래해서는 안됩니다. 주식 커널을 사용하십니까? 그렇다면 메모리 누수가있는 사용자 프로그램이어야합니다.
Thorbjørn Ravn Andersen 님이

1GB의 RAM으로 Chrome을 거의 사용할 수 없다는 것을 알았습니다. 물론 빠르고 샌드 박스가 있으므로 메모리를 많이 사용하여 비용을 지불해야합니다. 그러나 시스템에서 캐싱에 900MB를 사용하는 이유는 설명하지 않습니다.
종료-익명-무스

@ ThorbjørnRavnAndersen 커널은 주식입니다 : 3.2.0-4-686-pae #1 SMP Debian 3.2.32-1 i686 GNU/Linuxtop이 비정상적인 것을 보여주지 않을 때 발생 프로세스에서 메모리 누수를 추적하는 방법에 대한 아이디어가 있습니까?
STenyaK

1

프로세스 단위로 스왑 크기를 제공하는 도구는 알지 못하지만 쉽게 쓸 수 있습니다 ... (쉘 스크립트 예제는 아래를 참조하십시오)

Linux에는라는 도구가 제공됩니다 smem. 데비안 / 우분투에서 설치하려면 사용할 수 있어야합니다 (프로세스에 많은 파이썬 패키지를 설치합니다).

apt-get install smem

그런 다음 사용하려면 smem명령 줄에 입력 하십시오.


프로세스 스왑 사용량이 얼마인지 확인하는 다른 솔루션 은 프로세스 파일 에서 VmSwap 매개 변수 를 확인하는 것 status입니다.

사용 top또는 htop또는 ps또는 pgrep또는 pidof(프로세스 식별자를 결정 ... PID) 다음 상태 파일을 보면 :

$ pidof myprocess
123
$ cat /proc/123/status

여기에는 현재 프로세스에서 사용하는 메모리에 대한 정보가 포함됩니다. 예가 있습니다 :

Name:   snapinit
State:  S (sleeping)
Tgid:   2769
Ngid:   0
Pid:    2769
PPid:   1
TracerPid:  0
Uid:    0   0   0   0
Gid:    0   0   0   0
FDSize: 64
Groups: 
NStgid: 2769
NSpid:  2769
NSpgid: 2765
NSsid:  2765
VmPeak:   141952 kB
VmSize:   141952 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:     11552 kB
VmRSS:      3444 kB
VmData:      772 kB
VmStk:       136 kB
VmExe:       244 kB
VmLib:     62356 kB
VmPTE:       208 kB
VmPMD:        12 kB
VmSwap:     1968 kB
HugetlbPages:          0 kB
Threads:    1
SigQ:   0/3912
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000014006
SigIgn: 0000000000001000
SigCgt: 00000001800004c8
CapInh: 0000000000000000
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
Seccomp:    0
Cpus_allowed:   1
Cpus_allowed_list:  0
Mems_allowed:   00000000,00000001
Mems_allowed_list:  0
voluntary_ctxt_switches:    36
nonvoluntary_ctxt_switches: 23

관심있는 섹션은 Vm<name>매개 변수 (즉, 프로세스에 사용 가능한 유일한 종류의 메모리 인 가상 메모리, 커널 만이 실제 실제 메모리를 처리하고 VM은 MMU에 의해 생성됨)를 표시하는 섹션입니다 .

VmPeak:   141952 kB
VmSize:   141952 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:     11552 kB
VmRSS:      3444 kB
VmData:      772 kB
VmStk:       136 kB
VmExe:       244 kB
VmLib:     62356 kB
VmPTE:       208 kB
VmPMD:        12 kB
VmSwap:     1968 kB

필자의 경우이 프로세스에서만 사용되는 스왑 메모리 (VmSwap)는 1968Kb, 거의 2Mb입니다.

VmLib 매개 변수는 공유 라이브러리 (.so 파일)에 사용되는 메모리 양을 보여줍니다. 비록 이것이 큰 것처럼 보이지만 공유 라이브러리가 사용하는 메모리는 모든 프로세스에서 공유됩니다.

쉘에서 다음과 같은 명령 행으로 매개 변수를 검색 할 수 있습니다.

#!/bin/sh
echo "  NAME                        PID        SWAP"
for PID in /proc/[0-9]*
do
  if stat $PID/status >/dev/null
  then
    # get name of process
    procname=`grep 'Name:' $PID/status | awk -e '{ print $2 };'`
    # get amount of swap in use by that process
    procswap=`grep 'VmSwap:' $PID/status | awk -e '{ print $2 };'`

    printf "%-21s %11d %11d\n" $procname `basename $PID` $procswap
  fi
done

프로세스가 종료되면 $ PID / status 파일이 사라지고이 for 루프는이를 제대로 확인하지 않습니다. 또한 일부 파일은 일반 사용자가 읽을 수 없습니다 (즉, 루트 인 경우 각 프로세스에 대한 결과가 표시되고, 그렇지 않으면 일부 프로세스가 오류 또는 0Kb를 반환 함)

샘플 출력이 있습니다. SWAP 데이터는 킬로 바이트 입니다.

  NAME                        PID        SWAP
systemd                         1         348
watchdog/0                     10           0
ipv6_addrconf                 106           0
ureadahead                  13234          28
gnome-calculato             13997           0
apache2                     14175        7240
freshclam                    1447        3072
systemd-logind               1449         244

-1

당신이 그 이유의가, 어떤 프로세스를 중지 할 수 있도록 스왑 가득 죽이는 프로세스 사용을 kill -9 PID 사용 후, 그리고 sudo swapoff -a

내 조건에서 나는 sidekiq worker를 멈추고 스왑 메모리를 재 할당했다.

digitalocean 서버 스왑 메모리

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.