Ужасно тормозит LiveStreet

Почему тормозит — непонятно. Взять все сайты — sochipravda.ru, presidentputin.ru, takskazat.ru — все тормозят, хотя сервер мощный. ;(

12 комментариев

avatar
это потому што Луна в Меркурии.

Ну хоть больше данных, статистику там, top с сервера
avatar
last pid: 59924;  load averages:  1.42,  1.36,  1.27                                                                                  up 0+18:57:38  09:15:24
163 processes: 2 running, 159 sleeping, 1 stopped, 1 zombie
CPU:  2.9% user,  0.0% nice,  4.8% system,  0.2% interrupt, 92.0% idle
Mem: 365M Active, 1509M Inact, 281M Wired, 60M Cache, 112M Buf, 285M Free
Swap: 8192M Total, 44K Used, 8192M Free

  PID USERNAME       THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
 1509 mysql           52  57    0   262M   214M ucond   0  19.2H 105.62% mysqld
59897 www              1  62    0 85544K 30060K select  6   0:00  1.27% httpd
 1963 root            25  44   r0 41000K 11948K nanslp  5   8:53  0.00% ts3server_freebsd_x
 1806 root             1  46    0 82472K 21944K select  0   0:44  0.00% httpd
 1894 root             1  44    0  4712K  2956K STOP    3   0:36  0.00% top
 1611 root             1  44    0  7824K  3736K select  0   0:28  0.00% sendmail
 1110 bind            11  44    0 29604K 18552K kqread  5   0:16  0.00% named
 1096 root             1  44    0  3352K  1092K select  1   0:13  0.00% syslogd
 1713 root             1  44    0  9436K  3316K select  4   0:12  0.00% sshd
43629 root             1  44    0  8436K  4004K select  0   0:09  0.00% proftpd
 1553 root             1  44    0  3312K  1336K kqread  0   0:06  0.00% dovecot
 1748 root             1  44    0 10100K  4560K select  0   0:05  0.00% mc
 1561 root             1  44    0  3440K  1632K kqread  0   0:02  0.00% dovecot-auth
 1622 root             1  45    0  3380K  1152K nanslp  4   0:01  0.00% cron
54530 root             1  44    0  7824K  4496K connec  0   0:01  0.00% sendmail
 1378 root             1  44    0  7244K  2916K select  0   0:01  0.00% proftpd
 1522 ladvd            1  44    0  3396K  1260K kqread  5   0:01  0.00% ladvd
 1520 root             1  44    0  3396K  1224K kqread  2   0:00  0.00% ladvd
55519 root             1  44    0  8436K  3912K select  4   0:00  0.00% proftpd
59918 www              1  59    0 82472K 22268K CPU0    4   0:00  0.00% httpd
58750 root             1  44    0 82472K 21976K wait    7   0:00  0.00% httpd
63984 root             1  44    0 14608K  5616K select  4   0:00  0.00% ipmgr
59161 root             1  44    0 82472K 21976K wait    3   0:00  0.00% httpd
58690 root             1  44    0 82472K 21976K lockf   2   0:00  0.00% httpd
59148 root             1  44    0 82472K 21976K wait    0   0:00  0.00% httpd
59370 root             1  44    0 82472K 21976K wait    0   0:00  0.00% httpd
59515 root             1  44    0 82472K 21976K lockf   0   0:00  0.00% httpd
 1749 root             1  44    0  4580K  1968K wait    6   0:00  0.00% bash
59769 root             1  44    0 82472K 21976K lockf   0   0:00  0.00% httpd
59628 root             1  44    0 82472K 21976K wait    2   0:00  0.00% httpd
 1615 smmsp            1  44    0  6184K  2856K pause   0   0:00  0.00% sendmail
59782 root             1  44    0 82472K 21976K lockf   4   0:00  0.00% httpd
59771 root             1  45    0 82472K 21976K wait    0   0:00  0.00% httpd
 1403 mysql            1  76    0  3632K  1216K wait    2   0:00  0.00% sh
59893 www              1  44    0 83496K 22692K select  0   0:00  0.00% httpd
59669 root             1  44    0 82472K 21976K lockf   5   0:00  0.00% httpd
59774 root             1  44    0 82472K 21976K lockf   4   0:00  0.00% httpd
59900 www              1  46    0 82472K 22644K select  4   0:00  0.00% httpd
59770 root             1  44    0 82472K 21976K lockf   1   0:00  0.00% httpd
59759 root             1  44    0 82472K 21976K lockf   0   0:00  0.00% httpd
avatar
mysql вплоть до 150% нажирается ;((
avatar
поставил eaccelerator, memcache — попустило… намного легче стало все летать…
avatar
настраивайте mysql:
mysqltuner.pl (http://mysqltuner.com)
launchpad.net/mysql-tuning-primer
в помощь.
настраивайте апач (или nginx + php-fpm)
и да, eaccelerator+memcache или xcache тоже даст выигрыш в скорости
avatar
Ловите фирменный рецепт для высоконагруженных проектов на LS (испробовано на личном опыте путём множества проб и ошибок.)
Во-первых, устраняем узкие места.
Начать надо не с LS и даже не с самого веб-сервера, а с общесистемных заморочек.
Иногда бывает так, что много процессорного времени уходит на дисковые операции, т.е. IOwait.
Здесь две задачи: выставить адекватный IO Sheduler (CFQ, или даже Noop), и перенести всё — слышите, всё, что можно, в RAM FS. Особые джедаи-оверклокеры переносят весь движок в оперативку (об этом расскажу позже.)
Вот уж теперь приходит очередь сервера. Толстый и неповоротливый апач, падающий от SlowLori-атаки в одиночку (банальный питоноскрипт), сносим к Дискорду.
Качаем исходники nginx'а.
./configure --help

Вдумчиво курим мануал, и определяемся, что нам надо. Потом курим опять, и вновь конфигурируем для сборки с нужными флагами (Модуль STUB не забудьте, ага), выставляем все пути соответственно FHS!
make

Витиевато выражаемся, доставляем нужные зависимости и пакеты (опять-таки, если вы джедаист-пингвиновод, этот пункт пропускаем.)
checkinstall
(аккуратно собираем в пакет). Ставим.
Всё, теперь у нас красивый, быстрый, аки Рэйнбоу Дэш, сверкающий новизной nginx. Конфигурирование его может ускорить ещё на 20%.
Затем — php. Естественно, работать будем только, и только через CGI-интерфейс. Джедаисты качают исходники, собирают@компиляют. Ленивые кунг-фу панды ставят из пакетов.

Затем приходит время настраивать ШINDOШS nginx и собственно связку php-fpm. Приблизительные цифры могу посоветовать только тогда, когда скажете параметры этого вашего сервера и среднюю нагрузку на сайт (посещаемость). Для статики ставьте expires: max и отфутболивайте вплоть до ~75% запросов статики не с 200, а с 304 ответом, ня!

Переносим временные каталоги nginx в предусмотрительно откушенный кусок оперативной памяти.
Настраиваем mysql… тот же mysqltuner.pl вам в помощь, а временные каталоги вы уже поняли, куда. Само взаимодействие тоже строго через сокет — линукс же!

Затем ставим ускоритель. eAccelerator, спросите вы? Да как бы не так. Во-первых, он древнее Селестии и Луны вместе взятых, и не развивается уже очень долго. И потом, из-за его вредной привычки не следить за целостностью shared memory, и при высокой нагрузке то и дело отправлять в 502 сайт, я и отказался от него — ну стопорит обработку php-cgi, и всё тут. Доработка напильником как spawn-fcgi, так и php-fpm помогала лишь временно — до первой же лавины запросов.

Иногда советуют ставить memcached… ИМХО, излишний велосипед. Да, у него есть няшная фича распределения по нескольким серверам, но оно вам надо? Запускать отдельный кеширующий сервер, особенно на слабых хостингах/серверах суть лишняя головная боль. Поэтому выбрасываем это звено также.

Два вышеназванные «ускорителя» успешно заменяет xCache — кеш как опкода, так и переменных (var cache). Гибкая настройка, наличие «админки», быстродействие и нетребовательность к ресурсам процессора — что ещё надо для полного счастья? Благо, LS с ним работать умеет (и по сокету тоже), посему ставим. Аппетиты настраиваем в xcache.ini, если захотели стабильности и решили включить RO-protection, то файл также ложим в RAM FS.

Ставим сфинкс, ротацию топиков-комментов вешаем на крон, сам сфинкс просто вешаем на сокет.

Если не можете позволить себе полностью переместить LS в RAM FS, сделайте это хотя бы для каталога шаблонов — и немного, и ощутимо сэкономите ресурсы.

Вот, в принципе, и всё… по просьбе могу расписать любой пункт более подробно.

Да пребудет с вами мудрость Селестии.
avatar
Иногда бывает так, что много процессорного времени уходит на дисковые операции, т.е. IOwait.
. Само взаимодействие тоже строго через сокет — линукс же!
сам сфинкс просто вешаем на сокет.
имею мнение, что при большом IO пользы от сокетов ненамного больше, а зачастую и меньше, чем через Loopback
avatar
имею мнение [...]
… ХО.

А если серьёзно, то почему?
avatar
А вообще, ваше мнение неверное в корне. Вот джва железобетонных пруфа:
1. Номер 1. Семь лет назад некто Baris Simsek на FreeBSD.org поинтересовался, что же лучше. И получил внятный и обоснованный ответ от Robert Watson — явно в пользу сокетов.
2. Исследование "Performance Analysis of Various Mechanisms for Inter-process Communication", проведённое Kartik Gopalan и Hui Kang из кафедры компьютерных наук Бингемтонского университета совместно с Kwame Wright из Cooper Union в 2007 году, также свидетельствует о значительном (едва ли не на порядок) преимуществе использования сокетов.
avatar
Если лень читать, вот суть(tm):
4
4. Conclusion
Unix domain sockets have proven to deliver the highest throughput when compared to the other mechanisms. While its dominance is still unclear for transfers of small amounts of data, it is otherwise the bestmechanism to use within a single machine.
avatar
по дефолту я знаю, что сокеты быстрее, но речь идет при больших дисковых нагрузках.
avatar
Забыл добавить кое-что важное: если размещаете весь движок или хотя бы его часть в оперативке, обязательно позаботьтесь о регулярном резервном копировании на диск — дабы потом не было мучительно больно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.