Я пытаюсь понять использование памяти в крупномасштабной симуляции, которую мы пытаемся запустить. Когда я запускаю отчеты "ps"
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
myuser 5252 97.7 0.5 5751412 377392 ? Rs 19:49 1:15 myprogram
В этой симуляции у нас есть три массива, каждый из которых занимает 1,6 ГБ (200 миллионов двойных значений). На основании информации в
Что такое RSS и VSZ в управлении памятью Linux
Я ожидал, что эта память будет указана в RSS, но RSS составляет всего 377 МБ. Основываясь на информации в потоке stackoverflow, я пришел к выводу, что память должна быть заменена, и посмотрел на «free -m»
total used free shared buffers cached
Mem: 64391 5985 58406 0 463 1295
-/+ buffers/cache: 4226 60164
Swap: 4766 0 4766
а своп вообще не используется! Кроме того, что он слишком мал в любом случае. Так откуда же взялась эта разница между RSS и VSZ? Почему массивы, которые мы выделяем, являются частью VSZ, а не частью RSS?
Я ценю любую помощь