У меня есть тот же программный пакет с наборами данных примерно одинакового размера в двух системах Debian 9, с одной большой разницей: os-1
работает на голом железе и имеет лучшее оборудование, в то время как os-2
виртуализируется через VMWare, при этом доступно несколько меньше ресурсов.
Во время работы, пытаясь разбить общее использование памяти на то, что использует каждая часть программного обеспечения, я достиг точки, когда я больше не могу соотносить отчеты об использовании памяти от двух ОС. В частности:
os-1
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15451 mysql 20 0 9127356 998548 157856 S 0.0 2.4 3246:27 mysqld
42 root 20 0 271064 176612 176332 S 0.0 0.4 42:19.55 systemd-journal
21979 mongodb 20 0 1616012 129260 35476 S 0.5 0.3 340:30.57 mongod
130 Debian-+ 20 0 126644 78248 5820 S 0.0 0.2 83:17.46 snmpd
896 root 20 0 370140 36400 28452 S 0.0 0.1 3:06.93 apache2
1523 www-data 20 0 370212 11472 3480 S 0.0 0.0 0:00.00 apache2
# free -m
total used free shared buff/cache available
Mem: 40000 1131 32612 2398 6256 38868
Swap: 8191 85 8106
os-2
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
62285 mysql 20 0 2893200 690956 0 S 0.3 8.5 14097:36 mysqld
79420 mongodb 20 0 1815116 320700 2300 S 0.7 3.9 245:25.68 mongod
104939 www-data 20 0 445412 39284 16596 S 0.7 0.5 0:21.56 apache2
97338 www-data 20 0 444964 38704 16480 S 0.3 0.5 0:41.19 apache2
97313 www-data 20 0 444836 38504 16416 S 0.7 0.5 0:40.33 apache2
97315 www-data 20 0 444636 38476 16608 S 0.7 0.5 0:42.21 apache2
110249 www-data 20 0 444628 38236 16076 S 0.3 0.5 0:12.58 apache2
# free -m
total used free shared buff/cache available
Mem: 7969 6067 1170 88 731 1571
Swap: 2927 0 2927
На основании моих следующих наблюдений:
os-1
В отчетах указано, что общее использование является примерно суммой номеров RSS его процессов (т.е. ~ 1,1 ГБ), а НЕ их VSZ, что соответствует более 11 ГБ «используемой» памяти. Достаточно честно, давайте продолжим!os-2
Отчетность показывает, что общее использование намного больше, чем сумма значений RSS его обработки (6 ГБ ?!). Число, которое я больше не могу объяснить.... каким будет следующий шаг, чтобы объяснить основную причину заявленного высокого использования памяти на os-2
? Существуют ли какие-либо важные концепции виртуализации, связанные с памятью, которые я пропустил, делая эти выводы? Спасибо!