- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ситуация такая:
есть VDS, из которого нужно выжать максимум.
Конфигурация:
Проц. - 370 Мгц
Память гарантированаая - 160, иногда может выдавать до 480.
ОС - FreeBSD.
Apache 2 + PHP 5 + MySQL 5.
Раньше было 1500 хостов, и проблем мы не знали.
Но, купили трафик + продвинулись в поисковиках, посещаемость выросла до 6000 хостов (50 000 хитов). И начались проблемы...
Load Average поднялся до 20.00 15.00 10.00 (в среднем) и стала падать база. Помогала перезагрузка всего VDS, но не на долго. Пока база работала, при попытке загрузить страницу, сервер сразу отвечал, отдавая заголовок, через длинную паузу - шапку и т.п. Страница загружалась медленно.
При этом Apache использовал настроки по умолчанию.
Решили поковырять httpd.conf, и вот к какому результату пришли.
Директивы: (раньше они вообще прописаны не были)
KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 20
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 5
MaxRequestsPerChild 5
HostnameLookups Off
После прописания директив, база падать перестала. Это уже радует, но скорость работы не увеличилась.
Что странно, изменение большинства числовых значений директив не дает эффекта. Самый заметный эффект - у KeepAliveTimeout. При значении 5, Load Average поднимается иногда до 30.00 20.00 20.00 ну и конечно все тормозит. При значении 30, сервер работает стабильно, Load Average подает до 3.00 2.00 1.00. Но при попытке перейти на страницу, браузер долго не получает ответа (2-3 минуты), а потом страница в один миг полностью загружается.
Вопрос знатокам: какие при подобных "физических" данных сервера прописать значения директив, чтобы сервер работал стабильно, и при этом максимально быстро.
Мануалы читал, пробовал разные значения, но хорошего эффекта не добился. К сожалению, нету у нас сис.админов, потому прошу помощи.
PHP и MySQL настроены максимально, скрипты оптимизированы. А с апачем проблемы.
Заранее спасибо.
спасет кеширование. не апачем. но не надолго.
вообще - расширяйте возможности vps
Некоторые информационные блоки кешируются. Но в силу особенностей проекта можно кешировать лишь часть данных.
Подумайте о даунгрейде Апача до первой версии и Мускуля до 4, а то и 3-ей версии
тут только переходить на более мощный вдс.
MaxRequestsPerChild 5
а зачем так жестоко?
вполне можно перейти на lightspeed к примеру. работает не в пример легче. но, вобще описанная вами ситуация подозрительна. KeepAliveTimeout - это время в течение которого открытый для нового посетителя процесс "помнит" о его запросе. то есть как бы такой малюсенький "кеш" в памяти. и по логике его увеличение не замедлять должно отклик страницы а наоборот - ускорять. уменьшение KeepAliveTimeout приводит у вас к увеличению общей нагрузки, это может быть вызвано большим количеством подтягивания файлов с диска но, скорее всего просто до вас больше пользователей могут достучаться при таком раскладе и соответсвенно больше запросов начинают отрабатываться по полной программе. А тут уже надо смотреть и в мускуль - возможно там процессы засыпают или полно медленных запросов.
Простой пример - всем известный phpbb имеет одну таблицу worldmatch что то там - служит чисто для запоминания поисковых запросов на сайте. так вот даже на не очень посещаемых форумах таблица может разрастись до 100 к записей и при том что каждый раз при обращении к сайту прогоняется весь этот объем селектом открытие страниц замедляется в разы. А вебмастер который ни слухом ни духом начинает в таких случаях гнать на хостера - типа вот у вас медленно стал открываться сайт...
MaxRequestsPerChild 100
а ещё не плохо было бы увидеть скажем top во время сильной загрузки сервера может действительно мускуль много "ест"
Спасибо всем, кто ответил.
Магнат, даунгрейд Мускуля не возможен, т.к. проект написан под 5-ю версию.
iBBi, переходить на более мощный VDS думаем позже. Пока же нужно выжать максимум из того, что имеем в данный момент.
kostich, а какое значение MaxRequestsPerChild лучше выставить в данном случае? Я же потому и создал эту тему, что не разбираюсь в настройках апача...
rustelekom, у нас память вся забита и, видимо, при уменьшении KeepAliveTimeout ее просто начинает не хватать.
Zaqwr, ага, сейчас попробую. По top'у мускуль есть немного. Много ест Apache (десятки процессов по 12-16 Мб).
vibro добавил 29.02.2008 в 09:43
Вот кусок top'а:
71 processes: 1 running, 69 sleeping, 1 zombie
CPU states: 2.7% user, 0.0% nice, 0.0% system, 0.0% interrupt, 97.3% idle
Mem: 160M Active, 337M Inact
Swap: 320M Total, 8024K Used, 312M Free, 2% Inuse
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
41521 www 1 96 0 16392K 9612K select 0 0:00 15.61% httpd
41520 www 1 96 0 16392K 9592K select 0 0:00 7.53% httpd
40799 www 1 96 0 16392K 9248K select 0 0:01 4.64% httpd
41518 www 1 96 0 16384K 9588K select 0 0:00 3.23% httpd
41519 www 1 96 0 16384K 9576K select 0 0:00 3.23% httpd
41346 www 1 96 0 16392K 9548K select 0 0:00 3.13% httpd
41335 www 1 96 0 16392K 9560K select 0 0:00 3.07% httpd
41243 www 1 96 0 16392K 9556K select 0 0:00 3.04% httpd
41247 www 1 96 0 16392K 9544K select 0 0:00 2.65% httpd
39920 www 1 96 0 16392K 9208K select 1 0:01 2.54% httpd
40095 www 1 96 0 16392K 9324K select 0 0:01 2.39% httpd
40714 www 1 96 0 16392K 9204K select 0 0:01 2.05% httpd
40808 www 1 96 0 16392K 9216K select 0 0:01 1.95% httpd
41288 www 1 96 0 16392K 9564K select 0 0:00 1.88% httpd
40052 www 1 96 0 16392K 9336K select 1 0:01 1.37% httpd
41344 www 1 96 0 16392K 9432K select 0 0:00 1.26% httpd
40855 www 1 96 0 16392K 9208K select 0 0:00 1.07% httpd
41102 www 1 96 0 16392K 9212K select 0 0:00 0.98% httpd
39407 www 1 96 0 16392K 9536K select 1 0:01 0.98% httpd
40716 www 1 96 0 16392K 9528K select 0 0:01 0.98% httpd
41293 www 1 96 0 16392K 9552K select 1 0:00 0.79% httpd
40723 www 1 96 0 16392K 9264K select 0 0:00 0.68% httpd
40579 www 1 96 0 16392K 9252K select 0 0:01 0.68% httpd
41337 www 1 96 0 16236K 8668K select 0 0:00 0.50% httpd
41295 www 1 96 0 16392K 9248K select 0 0:00 0.45% httpd
41284 www 1 96 0 16392K 9536K select 0 0:00 0.44% httpd
41281 www 1 96 0 16392K 9544K select 1 0:00 0.44% httpd
40055 www 1 96 0 16392K 9528K select 0 0:01 0.44% httpd
40810 www 1 96 0 16392K 9248K select 0 0:00 0.44% httpd
41375 www 1 96 0 16392K 9500K select 0 0:00 0.41% httpd
41345 www 1 96 0 16392K 9412K select 0 0:00 0.30% httpd
40600 www 1 96 0 16392K 9216K select 0 0:00 0.24% httpd
40719 www 1 96 0 16384K 9504K select 1 0:01 0.15% httpd
41108 www 1 96 0 16400K 9508K select 0 0:00 0.10% httpd
41222 www 1 96 0 16392K 9528K select 0 0:00 0.05% httpd
20507 mysql 5 20 0 15112K 6844K kserel 0 0:23 0.00% mysqld
20517 root 1 8 0 16164K 7928K nanslp 0 0:02 0.00% httpd
Видно, что не хватает памяти.
В связи с этим еще вопрос. Процессы апача занимают в среднем 16392K. Как можно уменьшить эту цифру? Отключить лишние модули апача?
Может кто-то что-то еще посоветует?..
nginx вместо апача?
Andreyka, скажем так: nginx - это крайний случай. По возможности хотелось бы сохранить текущую конфигурацию, но выжать из нее максимум, произведя необходимые настройки.