我有一个apache2服务器,最近似乎有内存泄漏。 我使用mod_wsgi在Python中编写服务器WEB服务。 起初我认为这是我的Python程序泄漏的内存。 但是在top命令之后,我找不到任何泄漏内存的进程。 这是我的top命令。 128 GB的内存使用。 但apache2进程只使用14.1 GB的内存,我找不到任何其他进程谁使用这样的大内存。 如何find它?
top - 16:33:01 up 2 days, 22:20, 1 user, load average: 0.07, 0.03, 0.05 Tasks: 1975 total, 1 running, 1974 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 131987724k total, 131571384k used, 416340k free, 11068k buffers Swap: 999420k total, 998324k used, 1096k free, 67008k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 30188 www-data 20 0 14.1g 31m 0 S 4 0.0 5:41.80 apache2 31972 root 20 0 18844 2820 960 R 1 0.0 0:00.09 top 1 root 20 0 24348 820 56 S 0 0.0 0:02.21 init 2 root 20 0 0 0 0 S 0 0.0 0:00.33 kthreadd 3 root 20 0 0 0 0 S 0 0.0 0:00.67 ksoftirqd/0 4 root 20 0 0 0 0 S 0 0.0 0:34.55 kworker/0:0 5 root 0 -20 0 0 0 S 0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0 0.0 0:00.00 kworker/u96:0 8 root RT 0 0 0 0 S 0 0.0 0:00.58 migration/0 9 root 20 0 0 0 0 S 0 0.0 0:00.00 rcu_bh 10 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/0 11 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/1 12 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/2 13 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/3 14 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/4 15 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/5 16 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/6 17 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/7 18 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/8 19 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/9 20 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/10 21 root 20 0 0 0 0 S 0 0.0 0:00.00 rcuob/11
不要担心这只是从Linux的文件caching,它不直接链接到Apache:
Linux正在caching那些直接从内存访问它们的文件,而不是硬盘,这就增加了很多的性能。
在Debian 6&7中,我的内存总是用于caching,在Debian 8中,它似乎减less了caching的大小,所以仍然有空闲的RAM。