Назад | Перейти на главную страницу

Что использует память при работе e2fsck?

У меня проблемы с запуском e2fsck из-за ограничений памяти, как подробно описано в этот вопрос. В ходе исследования я натолкнулся на кое-что, что может представлять более общий интерес, поэтому я поставлю это в отдельный вопрос.

При запуске e2fsck использование памяти на машине составляет около 99%. Также начинает происходить обмен местами. Однако странно то, что это начало вывода top -M:

top - 14:09:37 up 1 day,  4:14,  3 users,  load average: 1.00, 1.00, 0.92
Tasks: 127 total,   2 running, 125 sleeping,   0 stopped,   0 zombie
Cpu(s): 12.4%us,  1.8%sy,  0.0%ni, 81.1%id,  4.6%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  1004.961M total,  987.484M used,   17.477M free,  664.469M buffers
Swap:   21.953G total,   72.574M used,   21.882G free,   68.512M cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                                         
 7627 root      20   0  164m 152m  61m R 100.0 15.2  49:18.25 e2fsck                                                                                                                                                                                                          
 8340 root      20   0  2696  996  752 R  2.0  0.1   0:00.01 top                                                                                                                                                                                                              
    1 root      20   0  2896    8    4 S  0.0  0.0   0:01.87 init

Таким образом, несмотря на то, что общее использование памяти составляет 99%, e2fsck показывает только 15,2%, и других операций с памятью нет.

Куда делась вся память? Является ли такое поведение уникальным для e2fsck, или это «нормально» (нежелательно, но понятно). Я не знаю, как память может использоваться чем-либо, кроме запущенного процесса.

Это нормально. Linux использует свободную память для буферизации доступа к диску.

Видеть Почему Linux странно сообщает о «свободной» памяти?