У меня есть сервер apache2, и в последнее время кажется, что есть утечка памяти. я использую mod_wsgi
написать серверный WEB сервис на Python. Сначала я думаю, что утечка памяти происходит из моей программы на Python. Но после top
команда, я не могу найти ни одного процесса, у которого происходит утечка памяти. Вот мой top
команда. Используется 128 ГБ памяти. но процесс apache2 использует только 14,1 ГБ памяти, и я не могу найти других процессов, которые используют такую большую память. как его найти?
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, оно не связано напрямую с Apache:
Linux кэширует файлы так, как будто вы обращаетесь к ним напрямую из памяти, а не с жесткого диска, это значительно увеличивает производительность.
В Debian 6 и 7 моя память всегда использовалась для кэширования, в Debian 8 кажется, что они уменьшили размер кеширования, поэтому по-прежнему доступна свободная оперативная память.