Здравствуй уважаемый all!
Возник вопрос по apache. Есть сервер CentOS 4.0. На нем апач 1.3.34. Есть куча виртуальных доменов на нем. У одного из пользователей количество файлов превышает полтора миллиона. В результате апач сьедает практически всю память что есть.
Вот что выдает top.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
Естественно сервер дико тормозит.
Вопрос.
Как можно решить эту проблему? Подскажите хотябы путь куда рыть по данной теме? Грохнуть такого юзера - не предлагать.
Заранее спасибо.
потора миллиона файлов в одном каталоге? для ext3 это мягко говоря черезмерно много... Честно говоря, не могу предположить для чего ему столько памяти... Общее количество файлов никак не влияет на производительность апача. Если таки все полтора миллиона свалены в один каталог, то по карйней мере принудительно отключите индексирования этого каталога... Вобщем информации маловато...
Опыт растет прямо пропорционально выведенному из строя оборудованию
Раз ест память значит грузит всю инфу в каталоге. Кстати
ls при сортировке тоже самое сделает. Любая файловая система имея
такой каталог будет в нем тормозить. А многие программы просто
дохнуть. Решение не меняя весь софт только одно - разбить
на подкаталоги.
Ці ў Юніксе няма квоты на колькасць файлаў у каталёге?
Так, відаць Апач індэксуе інфу з каталёга. Магу параіць толькі пашукаць нейкія настройкі ў конфігах.
Цікава, а калі не сакрэт, што гэта за файлы?) Бо нават не магу ўявіць, што пры такой колькасці можна храніць у файлах, а не у рэляцыённай БД.
очень тупое наверное предположение, но выскажусь :
а если эти все файлы раскидать в каталоги,которых не будет видеть этот юзер, а потом из них сделать симлинки в одну кучу , как и было.... хотя на процентов 99 уверен , что с симлинками будет таже кухня.
Ненасилие ещё никому не помогало
Trying is the first step towards failure (c) Homer Simpson
Ну, калі гэта фільмы, тады 1 500 000 * 700 Мб = 1 050 000 000 Мб = 1 экзабайт ?)
Тады гэта ня фільмы. Ну гэта не па мэте.
Добра. Лічу, што гэта архітыктурная памылка, калі столькі файлаў у адным каталёгі. Магчымасці правесці ідэялагічную работу з кліетам няма?)
Аб сімлінках, таксама, мне здаецца, што нічога не атрымаецца. Чаму? Давайце разважаць. Каталёг у Юніксе - гэта файл, які храніць у сабе імёны ўключаных файлаў. Выходзіць, яму няма розніцы паміж файлам ці сімлінкам. Таму, каб вывесці лістынг файлаў трэба толькі загрузіць гэты файл у памяць да распарсыць яго.
Нажаль мы не ведаем, дзе адбываюцца затрымкі. Ці гэта настройка Апача, ці хуткасць ФС, ці загрузка да распарсыван'е каталёга.
Спрабую стварыць 1 500 000 файлаў у сабе на ext3. Я раблю пустыя файлы камандай cp у простым скрыпце.
Вынік: шчэ не стварыліся ). Чакаю...
Стварэнне адбываецца нават і зараз, пасля 14 гадзін працы, і я хочу дачакацца вынікаў, але ўжо цяпер бачыма, што ls зусім медлена, але памер каталёга толькі 9.7 Мб. Паколькі памер самаго каталёгу не вельмі вялікі - , прачытаць яго у памяць не складае працы. Тады затрымка ў яго распарсаванні. Нават не ведаю, што ў гэты час сістэма робіць з ФС, няўжо найбольшая частка працы - гэта распарсаванне?
Таму, мае вынікі гэткія:
калі магчыма - актывізаваць у Апачы нейкі кэш, дзе б ён мог храніць ужо гатовую інфармацыю да не звяртацца кожны раз да ls.
фантастычны варыянт: напісанне асабістай функцыі агляда каталёга, аптымізаванай па хуткасці (бо ls не займае і паўперсотцы ад CPU).
ну і найбольш верны: гэта аптымізаваць архітэктуру кліентскага сайту. Бо нельга так.
Файлы же проверяются на права/владельцев/етс
Может стоит попробывать задать при маунт все возможные опции по этому поводу? например noexec (вроде так пишется) ?
бр... к потреблению памяти апачем это отношения иметь не должно. и заканчивайте флейм. автор темы что-нибудь скажет - тогда продолжим размышения, пока же все - просто гадание на кофейной гуще...
Опыт растет прямо пропорционально выведенному из строя оборудованию
Спасибо всем откликнувшимся!!!
Сразу видно, что форум очень активный.
Сразу скажу - проблема решена.
Глюки апача были связаны не с таким большим количеством файлов.
Сорри. Не разобрался сразу.
Ограничений на каталог у ext3 нет. Вернее есть но ограничение связано с размером винчестера.
Сейчас апач без проблем обрабатывает такое количество файлов.
mod_mmap_static был включен. Отсюда и все проблемы.
Отключил и все хорошо стало.
Насчет количества файлов. Там jpg.
Еще раз огромное спасибо всем откликнувшимся.