Большая проблема с загрузкой файлов PHP - PullRequest
2 голосов
/ 12 мая 2010

Я недавно завладел сайтом хостинга файлов (похожим на Rapidshare, Megaupload и т. Д.) И в настоящее время в среднем около 75 тыс. Посетителей в день. После миграции мы написали собственную систему с нуля. Пришло время обновить инфраструктуру и заняться веб-серверами и масштабированием. Теперь проблема в том, что после завершения загрузки файла веб-сервер не «сбрасывает» израсходованную память. Мы загрузили несколько файлов размером более 300 МБ, и перед загрузкой у нас было около 3,7 ГБ свободной памяти, и после загрузки 3 файлов размером 300 МБ каждый из них занимал около 1,2 ГБ. Первоначально мы думали, что это может быть проблема с Apache, но обновление до Litespeed также не исправило это. Вот «использование памяти» из «top»

Запоминание: всего 4015996 КБ, использовано 1206036 КБ, свободно 2809960 КБ, буферов 114984 КБ

Я чешу голову, чтобы понять, как «очистить» память, использованную веб-сервером или php во время загрузки, потому что таким образом система исчерпает память и аварийно завершит работу.

Вот мои значения php.ini:

max_execution_time = 6000 max_input_time = 6000 memory_limit = 2048M post_max_size = 2047M upload_max_filesize = 2047M

В Apache php работает на fcgi, а на Litespeed это Litespeed SAPI.

Спасибо, Билл

1 Ответ

3 голосов
/ 12 мая 2010

Я только что понял, что это «кеш-память», и я могу освободить ее с помощью этой команды: echo 3> / proc / sys / vm / drop_caches

cat /proc/meminfo

MemTotal: 4015996 кБ MemFree: 2490780 кБ Буферы: 118232 кБ Кэшированный: 1204168 КБ SwapCached: 0 кБ Активный: 358748 кБ Неактивно: 991220 кБ Активный (анон): 28024 кБ Неактивный (анон): 0 кБ Активный (файл): 330724 КБ Неактивно (файл): 991220 КБ Неуязвимый: 0 кБ Размещено: 0 кБ Высокий итог: 3179664 кБ HighFree: 1918528 кБ LowTotal: 836332 кБ LowFree: 572252 кБ SwapTotal: 48827384 кБ SwapFree: 48827384 кБ

...