Страница 1 из 2
apache и 1500000 файлов. Глюки.
Добавлено: 17 янв 2006, 18:04
pterik
Здравствуй уважаемый all!
Возник вопрос по apache. Есть сервер CentOS 4.0. На нем апач 1.3.34. Есть куча виртуальных доменов на нем. У одного из пользователей количество файлов превышает полтора миллиона. В результате апач сьедает практически всю память что есть.
Вот что выдает top.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10505 apache 16 0 1449m 1.4g 9288 R 11.7 72.1 0:03.27 httpd
10504 apache 16 0 1449m 1.4g 9440 R 11.4 72.2 0:05.38 httpd
10511 apache 16 0 1449m 1.4g 9528 R 11.4 72.2 0:03.36 httpd
10509 apache 16 0 1449m 1.4g 9440 S 11.0 72.1 0:03.49 httpd
Естественно сервер дико тормозит.
Вопрос.
Как можно решить эту проблему? Подскажите хотябы путь куда рыть по данной теме? Грохнуть такого юзера - не предлагать.
Заранее спасибо.
Добавлено: 17 янв 2006, 18:44
Llama
потора миллиона файлов в одном каталоге? для ext3 это мягко говоря черезмерно много... Честно говоря, не могу предположить для чего ему столько памяти... Общее количество файлов никак не влияет на производительность апача. Если таки все полтора миллиона свалены в один каталог, то по карйней мере принудительно отключите индексирования этого каталога... Вобщем информации маловато...
Добавлено: 17 янв 2006, 19:14
exe
Раз ест память значит грузит всю инфу в каталоге. Кстати
ls при сортировке тоже самое сделает. Любая файловая система имея
такой каталог будет в нем тормозить. А многие программы просто
дохнуть. Решение не меняя весь софт только одно - разбить
на подкаталоги.
Добавлено: 17 янв 2006, 19:26
Gnida
а reiserfs тут не поможет? он же сделан для работы с мелкими файлами , правда более прожорлив к процессору
Добавлено: 17 янв 2006, 20:58
Victor Gr.
Ці ў Юніксе няма квоты на колькасць файлаў у каталёге?
Так, відаць Апач індэксуе інфу з каталёга. Магу параіць толькі пашукаць нейкія настройкі ў конфігах.
Цікава, а калі не сакрэт, што гэта за файлы?) Бо нават не магу ўявіць, што пры такой колькасці можна храніць у файлах, а не у рэляцыённай БД.
Добавлено: 17 янв 2006, 21:56
Pilot
*.avi
Добавлено: 17 янв 2006, 22:11
kif0rt
столько *.avi !? у меня отпала челюсть
очень тупое наверное предположение, но выскажусь :
а если эти все файлы раскидать в каталоги,которых не будет видеть этот юзер, а потом из них сделать симлинки в одну кучу , как и было.... хотя на процентов 99 уверен , что с симлинками будет таже кухня.
Добавлено: 18 янв 2006, 01:22
Pilot
kif0rt, шуток не понимаешь ?

Добавлено: 18 янв 2006, 02:12
kif0rt
Добавлено: 18 янв 2006, 13:29
Victor Gr.
Ну, калі гэта фільмы, тады 1 500 000 * 700 Мб = 1 050 000 000 Мб = 1 экзабайт ?)
Тады гэта ня фільмы. Ну гэта не па мэте.
Добра. Лічу, што гэта архітыктурная памылка, калі столькі файлаў у адным каталёгі. Магчымасці правесці ідэялагічную работу з кліетам няма?)
Аб сімлінках, таксама, мне здаецца, што нічога не атрымаецца. Чаму? Давайце разважаць. Каталёг у Юніксе - гэта файл, які храніць у сабе імёны ўключаных файлаў. Выходзіць, яму няма розніцы паміж файлам ці сімлінкам. Таму, каб вывесці лістынг файлаў трэба толькі загрузіць гэты файл у памяць да распарсыць яго.
Нажаль мы не ведаем, дзе адбываюцца затрымкі. Ці гэта настройка Апача, ці хуткасць ФС, ці загрузка да распарсыван'е каталёга.
Спрабую стварыць 1 500 000 файлаў у сабе на ext3. Я раблю пустыя файлы камандай cp у простым скрыпце.
Вынік: шчэ не стварыліся ). Чакаю...
Стварэнне адбываецца нават і зараз, пасля 14 гадзін працы, і я хочу дачакацца вынікаў, але ўжо цяпер бачыма, што ls зусім медлена, але памер каталёга толькі 9.7 Мб. Паколькі памер самаго каталёгу не вельмі вялікі - , прачытаць яго у памяць не складае працы. Тады затрымка ў яго распарсаванні. Нават не ведаю, што ў гэты час сістэма робіць з ФС, няўжо найбольшая частка працы - гэта распарсаванне?
Таму, мае вынікі гэткія:
калі магчыма - актывізаваць у Апачы нейкі кэш, дзе б ён мог храніць ужо гатовую інфармацыю да не звяртацца кожны раз да ls.
фантастычны варыянт: напісанне асабістай функцыі агляда каталёга, аптымізаванай па хуткасці (бо ls не займае і паўперсотцы ад CPU).
ну і найбольш верны: гэта аптымізаваць архітэктуру кліентскага сайту. Бо нельга так.
Добавлено: 18 янв 2006, 15:58
Gnida
Файлы же проверяются на права/владельцев/етс
Может стоит попробывать задать при маунт все возможные опции по этому поводу? например noexec (вроде так пишется) ?
Добавлено: 18 янв 2006, 17:05
Llama
бр... к потреблению памяти апачем это отношения иметь не должно. и заканчивайте флейм. автор темы что-нибудь скажет - тогда продолжим размышения, пока же все - просто гадание на кофейной гуще...
Добавлено: 18 янв 2006, 18:02
pterik
Спасибо всем откликнувшимся!!!
Сразу видно, что форум очень активный.
Сразу скажу - проблема решена.
Глюки апача были связаны не с таким большим количеством файлов.
Сорри. Не разобрался сразу.
Ограничений на каталог у ext3 нет. Вернее есть но ограничение связано с размером винчестера.
Сейчас апач без проблем обрабатывает такое количество файлов.
mod_mmap_static был включен. Отсюда и все проблемы.
Отключил и все хорошо стало.
Насчет количества файлов. Там jpg.
Еще раз огромное спасибо всем откликнувшимся.
Добавлено: 18 янв 2006, 22:21
Victor Gr.
pterik, парнуха?
Добавлено: 19 янв 2006, 09:15
pterik
Victor Gr., к сожалению - нет

А вот что там лежит, сказать не могу. Но ничего сомнительного.