我不擅长处理服务器问题,任何帮助都非常感谢。当我尝试在 Linux 机器上启动 python/django shell 时,我得到了OSError: [Errno 12] Cannot allocate memory
。
free -m
似乎证实我的记忆力不佳:
total used free shared buffers cached
Mem: 590 560 29 0 3 37
-/+ buffers/cache: 518 71
Swap: 0 0 0
但是我看不出是什么占用了内存top
:ps aux
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 24336 908 0 S 0.0 0.2 0:00.68 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:04.85 ksoftirqd/0
我如何识别泄漏?谢谢。
顺便说一句,我不确定它是否相关,但我所说的机器是运行 Ubuntu 12 的 AWS EC2 实例。
答案1
尝试这个:
- 进入
top
。 - 按
F
(即Shift+ F) 指定排序字段。 - 输入。这会将列表中的N小写字母转换为大写字母。
n
N
- 按Enter。列表现在应按内存使用情况排序。
在主屏幕上按下?或以获得更多选项。h
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1010 mysql 20 0 545m 37m 1412 S 0.0 6.3 0:32.97 mysqld
939 bind 20 0 157m 11m 1896 S 0.0 1.9 0:00.03 named
3036 ubuntu 20 0 25260 7812 1720 S 0.0 1.3 0:00.42 bash
1212 root 20 0 192m 7420 2680 S 0.0 1.2 0:03.87 apache2
1322 www-data 20 0 192m 5880 1088 S 0.0 1.0 0:00.00 apache2
1323 www-data 20 0 192m 5188 436 S 0.0 0.9 0:00.00 apache2
1325 www-data 20 0 192m 5188 436 S 0.0 0.9 0:00.00 apache2
1328 www-data 20 0 192m 5188 436 S 0.0 0.9 0:00.00 apache2
1329 www-data 20 0 192m 5188 436 S 0.0 0.9 0:00.00 apache2
968 whoopsie 20 0 197m 4332 2980 S 0.0 0.7 0:00.01 whoopsie
795 root 20 0 153m 4256 3036 S 0.0 0.7 0:00.06 NetworkManager
2919 root 20 0 90156 3964 3064 S 0.0 0.7 0:00.02 sshd
804 root 20 0 101m 3656 2656 S 0.0 0.6 0:00.03 cupsd
1498 root 20 0 570m 3396 2312 S 0.0 0.6 0:00.03 console-kit-dae
693 root 20 0 49948 2876 2272 S 0.0 0.5 0:00.01 sshd
756 root 20 0 79036 2844 2044 S 0.0 0.5 0:00.02 modem-manager
964 root 20 0 124m 2844 2348 S 0.0 0.5 0:00.02 gdm-binary
答案2
ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
还将按内存使用量的降序对所有进程进行排序。