>[оверквотинг удален]
>
>При генерации страниц при нагрузках наблюдаю следующая картину: запросы к БД занимают
>к примеру 300ms, а страница вся генерится 4-5sec.
>Когда нагрузки толком нет (100-200 юзеров онлайн), то запросы к примеру занимают
>100-150ms, а общее время генерации страницы 300-400ms.
>
>Сначала оптимизировал запросы, таблички. Раньше в top на первом месте при нагрузках
>всегда висел mysqld, сейчас (после оптимизаций БД) mysqld далеко не на
>первом месте, а на первом месте и вообще в топе процессы
>php-fpm. memcache?
>[оверквотинг удален]
>CPU 1: 91.0% user, 0.0% nice, 5.6% system, 0.0%
>interrupt, 3.4% idle
>CPU 2: 94.0% user, 0.0% nice, 4.9% system, 0.0%
>interrupt, 1.1% idle
>CPU 3: 94.0% user, 0.0% nice, 3.4% system, 0.0%
>interrupt, 2.6% idle
>Mem: 1053M Active, 5421M Inact, 740M Wired, 235M Cache, 399M Buf, 439M
>Free
>Swap: 4096M Total, 528K Used, 4095M Free
>Как я понимаю, все упирается в процессор.
Да, CPU
>1. Насколько сильно может помочь установка второго такого же процессора в сервер?
Может помочь :)
>[оверквотинг удален]
>
>
>Собственно, собираюсь ставить второй сервер для некоторых других нужд и думаю разгрузить
>основной сервер, перенеся на второй всю статику.
>2. Или может лучше на втором оставить php-fpm только, раз он столько
>потребляет?
>3. Или может на него (второй сервер) лучше вынести mysql?
>4. А может железо такого за глаза должно хватать для веб-портала средних
>размеров, просто код кривой?
>5. Или может настройки ПО кривые какие-то?
Вы не привели всех данных, я бы вообще хотела суточные профили по sar увидеть, что бы делать какие-то выводы.
Да и тот же gstat интересен... Вообще часто проекты таки сидят по диску из-за базы (но в Вашем top именно cpu)
Обычно на отдельный сервер отделяют базу данных. Дальше, как следующий этап, можно сделать два веб-сервера, и балансить на них нагрузку с помощью, например, LVS.
Встает вопрос, как обеспечить актуальность контента? Есть несколько способов:
1. rsync, чревато тем, что "что-то где-то недосинкается"
2. SAN на все серверы, сколько бы их в дальнейшем не было (чревато большими тратами $)
3. кластерная фс/блочное устройство - чревато сменой FreeBSD на Linux и тормозами по i/o
4. Храним все в MySQL, серверы баз данных реплицируем с друг другом: чревато усложнением архитектуры и проблемами со статикой
Можно коомбинировать :)
Кроме распределения нагрузки, есть еще вопрос стабильности: два сервера это менее надежно, чем один, а три.. ну.. Вы понимаете...