Я использую SUSE 10 Linux на машине с 16 Гб оперативной памяти и 2 четырехъядерными процессорами.
Есть 8 процессов, которые выполняют некоторую работу (интенсивная загрузка ЦП / сетевой ввод / вывод). Из которых 4 имеют утечку памяти (это тестовые условия, поэтому проблем с утечками здесь нет).
Общее пространство, занимаемое всеми процессами, составляет около 15,4 ГБ, в системе свободно только 200 МБ.
Все хорошо на несколько часов. Но после этого malloc зависает (для процесса, у которого нет утечки памяти).
Оно зависло более чем на 4 минуты (обратите внимание, что процессор не на 100%, но io значительно вырос).
Теперь нет проблем в зависшем процессе (он не повредил память).
Что делает malloc? (пытается ли дефрагментировать или создавать пространство подкачки).
Есть указатели?