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

Lighttpd потребление памяти при больших загрузках

Рассмотрим следующий сценарий:

Странно то, что хотя фрагменты записываются на диск, свободная память на сервере постепенно уменьшается до полного размера файла во время загрузки. Я бы понял, что ОЗУ уменьшается на размер каждого фрагмента (скажем, 1-2 МБ), пока они не будут записаны на диск, но я не понимаю, почему это происходит на весь размер файла (скажем, 300 МБ).

  1. Знаете ли вы, почему ОЗУ используется для всего файла, хотя его фрагменты записываются на диск? Возможно ли монтирование / var / tmp непосредственно в памяти? По сравнению с / tmp?
  2. Если нет, знаете ли вы, как диагностировать и как определить, какой процесс занимает память? Я не видел, чтобы процесс lighttpd или php-cgi увеличивался с помощью ps, но, возможно, я смотрю не на то, что нужно.
  3. Или еще лучше, не могли бы вы порекомендовать хороший веб-сервер (Apache, Nginx, lighttpd и т. Д.) И конфигурацию для обработки больших загрузок без сохранения всего в ОЗУ?

Спасибо!

Если размер lighttpd или php-cgi не увеличивается, не волнуйтесь - увеличение, которое вы видите, связано не с потреблением оперативной памяти этими процессами, а с использованием ядром дискового кеша. По сути, поскольку вы только что записали эти большие файлы, ядро ​​хранит их в памяти, предполагая, что вы, возможно, захотите прочитать их снова. Конечно, он сбросит этот кеш, если эта память понадобится другим процессам.