Вт, 06.12.2016, 02:48
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Меню сайту
Розділи щоденника
Персональний блог Jokerza [5]
Загальний блог [0]
 Щоденник (блог)
Головна » 2008 » Серпень » 7 » Акселерация сервера или дай больше ресурсов :)
Акселерация сервера или дай больше ресурсов :)
15:14
Начал с того что вычислил чего именно нехватка дает отказ в обслуживании.
Один мне сказал сделай мол что бы php работал как модуль Apache сразу меньше оперативки будет кушать.
Да, это верно, но это удар ниже пояса по безопасности сервера!
Почему?
А потому что когда php стоит как модуль cgi все скрипты запускаются от текущего пользователя и с его правами доступа в системе, что это значит?
А то что есть к примеру клиент vasja для него создана директория веб с его скриптами.
все скрипты запускаются от юзера vasja а не от юзера Apache т.е. от веб сервера.
Представим ситуацию когда все таки пхп интепритатор запускается от апача.
Вы поставили форум, он данные пишет в файл (к примеру основные настройки) скрипты форума запущены от веб сервера т.е. права доступа имеет веб сервер к файлам а не Вася.
Вы сменили настройки форума, и он записал данные в конфиг владельцем которого стал юзер группы Apache т.е. веб сервер.
Настройки внесли не верные и форум не запускается необходимо сменить данные в конфиге руками, и тут открываете кофиг изменяете, сохраняете и без толку, а почему? А потому что прав нету, вы под юзеом vasja а владелец файла Apache вот тут только админа сервера просить изменить данные.
Да и вообщем представьте человека в которого есть доступ к серверу с правами веб сервер ?:) Вообщем чудить можно много
Потому все хостинги не ставят такие настройки.

Наверно сутки следил по логам и толку это не принесло. И так начал с того что апач при обработке php хавал более 10 метрофф озу и проца эдак 60 процентов и более скачек держался долго.
И так уменьшить использование ОЗУ:
для начала перелопатил httpd.conf (кто не в танке главный конфиг апача)
там нашел директивы отвечающие за кол-во конектов, таймауты и прочую бяку:)
уменьшил жизнь конекта до 30 сек. (а не300 как было)
снизил колво конектов с одно IP (это полезно и против досса)
еще кучу всего подкрутил, уже вижу результат плодятся не так много процессов.
Но все равно дело в том что они весят долго в памяти. т.е. процес запустился обработал данные за 0.1 сек. а висит более 30 сек. нерабочий, проц не грузит а вот оперативу хавает! Потому на 1 процесс поставил жизни 5 сек. (поставил довольно хитро)
затем поставил eacselerator - ускоритель php . ускорилась работа скриптов где то на 20-30 процентов, уже неплохо. Но этого мало, основная проблема осталась. Кэширования было мало.
Решил поставить проксирующий веб сервер между клиентом и апачем. Зачем?
А как помниццо при конектах апач создает кучу конектов для каждого обращения.
Потому нуна была конструкция типа brauser- proxy www - Apache
Хорошо известный Nginx эти вопросы решал.
И так был установлен на сервер Nginx пере апачем, отладил что бы тот отдавал статический контент а апач только динамику.
Вот, уже легче, память освободилась и прилично
100 клеинтов использовали в пике посещаемости чуть более 400 мегабайт (почти полтора гига свободно)
Но осталась проблема с процессором. Что же делать?
для начала необходимо было установить причну почему тяжолые скрипты юзают для простых задач столько много.
Обратил внимание что процессы интепритатора висят в мапяти долго. К примеру один скрипт что то делает он висит и юзает проц на 60 процентов тут второй еще 30 и тут третий и все сервер выдает 500 ошибку, однако что же делать. Ведь процес часто юзает в начале работы пик ЦПУ но реально нужно для работы мало времени (до 1 сек) но процес юзает около 30 сек. столько проца.
И так первое это запретить столько жить без работы.
Второе это запретить 1 процесу юзать весь ЦПУ более 1 сек.
Это решило проблемы с процессором очень быстро.
Делал я еще много чего дополнительно.

Но результат при тех же сайтах:
Средняя загрузка 0.47 0.22 0.23
В пик может поднятся до
Средняя загрузка 2.47 2.22 2.23
не более 3
Это очень радовало.
После всего прочего за сутки не разу не упал апач.
Все работа сервер стабилизировать и все пошло как нужно, клиенты поутихли. Все сайты работи вполне стабильно и шустро.
Еще кучку ограничений поставил и все
вот так я мучался в течении 3 суток на сервером

Категорія: Персональний блог Jokerza | Переглядів: 1786 | Додав: Jokerz | Рейтинг: 5.0/1 |
Всього коментарів: 2
Jokerz (13.01.2009 20:41)
Додав: Jokerz | Дата написання: 13.01.2009 Спам
кстати сейчас php работает как модуль Apache но через suexec :) что дает возможность запускать под процесс апача под юзером:) что реально экономит ресурсы и не дает возможности шариться дальше чем корень веба клиента.
0
Додав: Ковальчук_Олександр | Дата написання: 20.09.2008 Спам
Очень интересный рассказ. Спасибо огромное, Jokerz. С нетерпением ждём новых жизненных историй.
Проблеммы бывают и у профессионалов. Главное - успешное их решение.
0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]
Календар
«  Серпень 2008  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
25262728293031
Форма входу

Ласкаво просимо на сайт!
Увійдіть або зареєструйтесь.
Логін:
Пароль:
Пошук
Друзі сайту
Статистика

Всього онлайн: 2
Гостей: 2
Користувачів: 0