mr.Dream 164 Posted 2011-10-19 13:16:29 Share Posted 2011-10-19 13:16:29 Цікаво, чи хтось умудрився розігнати апач до максимального використання ресурсів, і максимально можливої швидкості віддачі контенту? Дивно, що апач з більшим потоком віддає згенеровані РНР дані (порядка 30 мбіт/с), аніж статичний контент (від 50 кібт до 2 мбіт). І ще не зрозуміла закономірність, в одній і тій мережі різним клієнтам різна швидкість. При тому сервер не їсть ресурсів майже ніфіга. Зараз важкий контент віддається через ФТП, подумую про звязку з ngnix. Але все таки може є метод розгону? Link to post Share on other sites
nightfly 1,259 Posted 2011-10-19 13:31:55 Share Posted 2011-10-19 13:31:55 На власному досвіді - апач успішно віддавав тяжку статику на швидкостях ~600Мбіт, далі все впиралось в далеко не найкращі мережухи/вінти. Використання nginx як фронтенду до апача помітного приросту швидкодії не дало. Хазяйці на замітку: 1. багато памяті (форки-форки-форки) 2. Accept-фільтри 3. ввімкнути sendfile 4. можливо ввімкнути ММ? 5. фастфорвардинг? Link to post Share on other sites
Ziki 11 Posted 2011-10-19 15:52:00 Share Posted 2011-10-19 15:52:00 Цікаво, чи хтось умудрився розігнати апач до максимального використання ресурсів, і максимально можливої швидкості віддачі контенту?</div><div>Дивно, що апач з більшим потоком віддає згенеровані РНР дані (порядка 30 мбіт/с), аніж статичний контент (від 50 кібт до 2 мбіт). І ще не зрозуміла закономірність, в одній і тій мережі різним клієнтам різна швидкість. При тому сервер не їсть ресурсів майже ніфіга.<br /> Зараз важкий контент віддається через ФТП, подумую про звязку з ngnix. Але все таки може є метод розгону? Проблема при раздаче статики находится намного глубже чем настройки. Она идет от принципа работы апача и дисковой системы. При запросе контента, апач создает тред, в котором начинает обрабатывать запрос. Если идет запрос на отдачу статики, тред апача обращается к дисковой системе, которая является самым тормозом из всех компонентов сервера (тоесть это потенциально блокирующаясь операция). В результате чего тред апача просто висит в памяти и ждет ответа дисковой системы прожирая при этом ресурсы всей системы в пустую. ngnix - это синхронный сервер, с асинхронным вводом-выводом. Это значит что при запросе на статику, ngnix не создает отдельный тред или форк процесса, он якобы говорит дисковой системе: "мне нужно 100500 байт вот такого файла, когда будет готово дай знать, а я пока займусь другими делами". И все это происходит в пределах одного процесса. В результате идет экономия на оперативке и на процессоре за счет меньшего количества переключений контекста. Так что не пытайтесь на белазе обогнать болид формулы 1. Под каждую задачу используйте заточенные для этого решения. Link to post Share on other sites
Serjio 19 Posted 2011-10-19 20:31:21 Share Posted 2011-10-19 20:31:21 Ставь сразу nginx на отдачу статики, проверено. p.s. Ziki, Nginx — это асинхронный сервер Link to post Share on other sites
lyric 25 Posted 2011-10-19 20:40:04 Share Posted 2011-10-19 20:40:04 все всё пишут правильно, но сильно смущает такая разница отдачи статики и динамики у топикстартера. 100 мбит апач должен отдавать без особых проблем. насколько сильно жрет апач проц и память в момент отдачи статики? если запустить закачку в несколько потоков - насколько будет меняться скорость каждого потока по сравнению с закачкой в 1 поток? идей, честно говоря, пока нет. Link to post Share on other sites
Ziki 11 Posted 2011-10-20 06:28:51 Share Posted 2011-10-20 06:28:51 p.s. Ziki, Nginx — это асинхронный сервер Упрощенно говоря да. Но если посмотреть на код nginx то видно что основные действия выполняются в пределах одного процесса, код которого является синхронным (я про низкоуровневою работу с дескрипторами ввода/вывода). Так что все же nginx - это синхронный сервер с асинхронным вводом/выводом. Link to post Share on other sites
mr.Dream 164 Posted 2011-10-20 09:02:39 Author Share Posted 2011-10-20 09:02:39 все всё пишут правильно, но сильно смущает такая разница отдачи статики и динамики у топикстартера. 100 мбит апач должен отдавать без особых проблем. насколько сильно жрет апач проц и память в момент отдачи статики? если запустить закачку в несколько потоков - насколько будет меняться скорость каждого потока по сравнению с закачкой в 1 поток? идей, честно говоря, пока нет. майже нічого не жере, до 1%цп, 14 мб оперативної. в момент закачки нічого не міняється. Від кількості потоків швидкість на потік не міняється. саме дивно, що на локалхості швидкість порядка 160 мбіт/с, загрузка цп порядка 40% - тобто він може видавати більше ніж 50 кбіт) чому з інших айпі така хрєнь? Фтп з цього сервера видає 11,5 мБ\с. Може проблема не в апачі ? Link to post Share on other sites
lyric 25 Posted 2011-10-20 17:38:30 Share Posted 2011-10-20 17:38:30 Похоже, что где-то просто ограничение стоит на скорость отдачи. Или в апаче (mod_bandwidth, mod_cband и т.п.) или в файрволе. Попробуйте правда nginx поставить (все равно, лучше будет, если его потом фронт-эндом настроить) и, вырубив апач, чтобы пока не тратить время на конфигурацию, запустить его (nginx) единственным сервером и скачать что-нибудь через него. Так локализуете ограничение (апач/файрвол). Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now