Перейти к контенту
  • 0

Серверное окружение или ускоряем трёшку!


proit

Вопрос

Уже поднималась тема по оптимизации 3ки на уровне форума. Но сейчас я хотел бы остановиться на устройстве серверной инфраструктуры для форума. Предполагаю, тема будет очень актуальна для владельцев ВДС/ВС.

 

Недавно сам обзавелся ВДСкой, как раз к выходу 3.0.2. Каково было мое разочарование, когда время генерации не поднималась выше 0.7с, а если еще и конкурентные запросы запустить, то и вовсе >15с, что как сами понимаете, недопустимо. Все это действо происходило на centOS 5.3 со стабильным пакетом Apache 2.2.3, PHP5.1.6, Mysql 5.0.45. Дополнительно был поставлен eaccelerator 0.9.5.2 без поддержки ф-ий работы с памятью. Сервер же имеет ресурсы 480 MHz, 256Mb, что по идее должно хватать для довольно небольшого форума (7000пользователей + 16000постов) + на ВДС только форум.

 

А теперь ближе к делу, т.к. сейчас у меня практически нулевая ВДС (в плане окружения) и я стремлюсь добиться достаточной производительности, как и все вы, предлагаю здесь писать свои рекомендации (идеи?) по оптимизации именно серверного окружения, а я в свою очередь, по мере возможности (опыта) буду пробовать и проводить замеры с помощью siege с выкладкой результатов.

 

Вот что я имею сейчас:

 

siege -c10 -t 10S

Transactions: 26 hits

Availability: 100.00 %

Elapsed time: 15.94 secs

Data transferred: 0.32 MB

Response time: 1.87 secs

Transaction rate: 1.63 trans/sec

Throughput: 0.02 MB/sec

Concurrency: 3.05

Successful transactions: 26

Failed transactions: 0

Longest transaction: 13.34

Shortest transaction: 0.51

 

siege -c 30 -t 10S

Transactions: 15 hits

Availability: 100.00 %

Elapsed time: 21.15 secs

Data transferred: 0.19 MB

Response time: 6.17 secs

Transaction rate: 0.71 trans/sec

Throughput: 0.01 MB/sec

Concurrency: 4.37

Successful transactions: 15

Failed transactions: 0

Longest transaction: 10.55

Shortest transaction: 0.00

Только обратите внимание на "Elapsed time", хоть я и указывал 10сек, реальное время иногда много больше назначенного...(почему не знаю, видимо, какие то запросы виснут).

 

P.S. Я был немного озадачен, когда увидел, что кэширование происходит в БД...неужто придется ставить мемкэш? Предпочтительно только APT || eaccelerator --with-eaccelerator-shared-memory хватит? Уж очень не хочется раскидываться памятью:D

 

P.S.S. На днях согласуюсь с поддержкой и обновлю PHP + мускуль и привяжу nginx для статики.

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 64
  • Создана
  • Последний ответ

Лучшие авторы в этом вопросе

Лучшие авторы в этом вопросе

Рекомендуемые сообщения

  • 0

Типа того?

MEMORY USAGE
Loaded Language File: cache/lang_cache/1/core_public_global.php	76.93К
Registry initialized	9.05МБ
Controller getCommand executed	10.28К
Everything up until execute call	9.34МБ
Loaded Language File: cache/lang_cache/1/forums_public_boards.php	24.41К
Topic markers initialized	982.66К
publicOutput: Loaded skin file - skin_global	12.65К
publicOutput: Loaded skin file - skin_boards	11.77К
Loaded Language File: cache/lang_cache/1/forums_public_forums.php	39.02К
NO SUCH Language File: cache/lang_cache/1/forums_forums.php	40.23К
Loaded Language File: cache/lang_cache/1/core_public_ahmodding_reputation.php	6К
Loaded Language File: cache/lang_cache/1/forums_public_topic.php	111.65К
IPSMember::buildDisplayData: 22148 - Completed	52.05К
IPSMember::buildDisplayData: 27561 - Completed	40.92К
IPSMember::buildDisplayData: 22171 - Completed	36.73К
IPSMember::buildDisplayData: 3647 - Completed	50.02К
IPSMember::buildDisplayData: 13927 - Completed	49.27К
IPSMember::buildDisplayData: 14229 - Completed	39.23К
IPSMember::buildDisplayData: 31552 - Completed	30.95К
IPSMember::buildDisplayData: 29044 - Completed	37.02К
IPSMember::buildDisplayData: 15642 - Completed	33.82К
Output sent	1.55МБ
Total Memory Used: 14.52МБ (Peak:14.79МБ)

 

Работает связка nginx+fast-cgi+xcache

Скорость генерации страницы где то 0,4 - 0,5 сек.

Изменено пользователем Святой
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Да, спасибо!

Только вот, что странно: "Total Memory Used: 14.52МБ (Peak:14.79МБ)" это очень много при использовании xCache...вы какую страницу смотрели?

Например, на главной у меня около 4.5М (если незакэшировано, то 8М) - в зависимости от опткэшера значение варьируется +- 0.5М.

Возможно, такой эффект дает ФАСТЦГИ?

 

Скорость генерации страницы где то 0,4 - 0,5 сек.

Как бы не очень шустро...

Можно узнать вашу ОС и выделенные ресурсы ВДС? Я был бы крайне признателен, если бы вы провели парочку тестов через siege {-c10 -t30; -c30 -t30} - очень интересно насколько стабильно работает на такой связке.

Изменено пользователем proit
Ссылка на комментарий
Поделиться на других сайтах

  • 0
MEMORY USAGE
Loaded Language File: cache/lang_cache/1/core_public_global.php	43,95К
Registry initialized	2,15МБ
Controller getCommand executed	3,21К
Everything up until execute call	2,33МБ
Loaded Language File: cache/lang_cache/1/forums_public_boards.php	5,32К
Topic markers initialized	213,27К
publicOutput: Loaded skin file - skin_global	5,09К
publicOutput: Loaded skin file - skin_boards	5,25К
IPSMember::buildDisplayData: 1213 - Completed	30,84К
Loaded Language File: cache/lang_cache/1/forums_public_topic.php	11,27К
Output sent	277,36К
Total Memory Used: 3,24МБ (Peak:3,45МБ)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Да, спасибо!

Только вот, что странно: "Total Memory Used: 14.52МБ (Peak:14.79МБ)" это очень много при использовании xCache...вы какую страницу смотрели?

Например, на главной у меня около 4.5М (если незакэшировано, то 8М) - в зависимости от опткэшера значение варьируется +- 0.5М.

Возможно, такой эффект дает ФАСТЦГИ?

 

Скорость генерации страницы где то 0,4 - 0,5 сек.

Как бы не очень шустро...

Можно узнать вашу ОС и выделенные ресурсы ВДС? Я был бы крайне признателен, если бы вы провели парочку тестов через siege {-c10 -t30; -c30 -t30} - очень интересно насколько стабильно работает на такой связке.

 

Согласен.. не так шустро, как хотелось бы...

Форум большой:

Сообщений 1837369

Пользователей 16136

Одновременно до 250 пользователей бывает.

Попробую для чистоты эксперимента ночью запустить тесты.

А про ресурсы.. ресурсы ограничены только самим сервером :D

Работает все под Debian'ом

 

-с10 -t30S

Transactions:					 313 hits
Availability:				 100.00 %
Elapsed time:				  30.47 secs
Data transferred:			   5.25 MB
Response time:				  0.43 secs
Transaction rate:			  10.27 trans/sec
Throughput:					 0.17 MB/sec
Concurrency:					4.42
Successful transactions:		 313
Failed transactions:			   0
Longest transaction:			1.67
Shortest transaction:		   0.10

 

 

-c30 -t30S

Transactions:					 478 hits
Availability:				 100.00 %
Elapsed time:				  29.92 secs
Data transferred:			   8.01 MB
Response time:				  1.28 secs
Transaction rate:			  15.98 trans/sec
Throughput:					 0.27 MB/sec
Concurrency:				   20.52
Successful transactions:		 478
Failed transactions:			   0
Longest transaction:			4.00
Shortest transaction:		   0.11

 

Это с учетом присутствия 90 человек на форуме

Изменено пользователем Святой
Ссылка на комментарий
Поделиться на других сайтах

  • 0

На форуме всего 15 человек.

Xcache обновил до 1.3.0 и немного поднастроил

-c10 -t30S

Transactions:					 436 hits
Availability:				 100.00 %
Elapsed time:				  29.63 secs
Data transferred:			   7.31 MB
Response time:				  0.16 secs
Transaction rate:			  14.71 trans/sec
Throughput:					 0.25 MB/sec
Concurrency:					2.31
Successful transactions:		 436
Failed transactions:			   0
Longest transaction:			0.42
Shortest transaction:		   0.09

-c30 -t30S

Transactions:					 250 hits
Availability:				 100.00 %
Elapsed time:				  30.24 secs
Data transferred:			   4.19 MB
Response time:				  0.48 secs
Transaction rate:			   8.27 trans/sec
Throughput:					 0.14 MB/sec
Concurrency:					3.94
Successful transactions:		 250
Failed transactions:			   0
Longest transaction:			1.17
Shortest transaction:		   0.10

Ссылка на комментарий
Поделиться на других сайтах

  • 0

На выделенном сервере один из виртуальных серваков отдан полностью под форум.

Да... здесь я не совсем в теме, ибо хостинг свой. Но, с другой стороны - "Ускоряем трешку".

Тем более, что на своем серваке я могу попробовать многое.

Вот и пытаюсь. К сожалению, единственное нарекание у меня вызывает стартовая страница. Остальное недурно летает.

Но, поскольку категорий и форумов много - ну не нравится мне скорость ее загрузки.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
На выделенном сервере один из виртуальных серваков отдан полностью под форум.

Да... здесь я не совсем в теме, ибо хостинг свой.

Очень даже в теме:D Какая разница, кто предоставляет площадку, главное, что сервер (даже если он виртуальный) в вашем полном распоряжении и вы вольны творить с ним что угодно (например, затачивать под 3шку).

Но все-таки, как много ресурсов вы выделили этой ВДС?

 

P.S. Перешел на ВДС помощнее (720 MHz, 384 Mb) актуализирую данные и сново сделаю замеры)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

После 12-го вернусь из отпуска и постараюсь ответить на этот вопрос..

Виртуальные сервера на машине создавал не я. Поэтому сейчас несколько затруднительно ответить

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Так как сейчас форум уже запущен (на момент замера было 15ч), статистика достаточно неточна:

 

Transactions: 105 hits

Availability: 100.00 %

Elapsed time: 37.01 secs

Data transferred: 1.55 MB

Response time: 2.74 secs

Transaction rate: 2.84 trans/sec

Throughput: 0.04 MB/sec

Concurrency: 7.76

Successful transactions: 105

Failed transactions: 0

Longest transaction: 15.82

Shortest transaction: 0.38

Форум стал работать много стабильнее и в целом удовлетворяет моим запросам. Однако, при высокой конкурентности все равно проседает в скорости:D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

2Vabank: было бы здорово, если прогоните через siege и укажите ресурсы + ОС.

Очень неплохое время генерации показываете.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

На чем работаете? Какой форум по размеру?

Что то тема у нас плавно переходит в пузомерку:D

Давайте указывать не только время генерации, но и ОСь, ресурсы, архитектуру веб-сервера и т.д., ведь без этого остается только догадываться, как это у вас так быстро/медленно работает.

Изменено пользователем proit
Ссылка на комментарий
Поделиться на других сайтах

  • 0

ОС: Debian

nginx + php (fast cgi как unix-socket), xcache, сессии php хранятся в memcache.

Хочу ещё утилитку Minify настроить на работу с memcache.

 

Под нужны выделен отдельный сервер - делать с ним могу все что захочу :D

 

-c10 -t30S

Transactions: 184 hits

Availability: 100.00 %

Elapsed time: 30.08 secs

Data transferred: 2.53 MB

Response time: 1.11 secs

Transaction rate: 6.12 trans/sec

Throughput: 0.08 MB/sec

Concurrency: 6.80

Successful transactions: 184

Failed transactions: 0

Longest transaction: 1.73

Shortest transaction: 0.55

 

Помимо форума на сервере ещё крутиться пару Counter-Strike серверов.

 

Есть в принципе возможность чуть затюнить Minify - класть cache файлы в директорию /tmp (tmpfs). Если кому интересно - расскажу как это сделать.

 

Переложил хранение Cache в memcache, скорость генерации страницы не изменилась, ибо и не должна ;) но отдача JS и CSS происходит моментально + меньше грузит дисковую подсистему - меньше кушает ресурсов, правда чуть больше памяти :)

Изменено пользователем Opik
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Обратите внимание:

user					proit				  ritsuka				opik	
CPU					480 MHz				 580 MHz				 2.8 GHz
MEM					256 Mb				  260 Mb				  1.5 Gb
Trans. rate			1.93					3.47					6.12	
Resp. time			 3.32					1.58					1.11
Concurrency			6.41					5.48					6.80

 

Реальная память на моей виртуалке 580 Mb, но apache жестко (через RLimit) ограничен до 260 Мб.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Также у меня параллельно на том же сервере крутится openfire jabber server + nginx proxy с перманентной нагрузкой 50 мбит/сек.

 

Либо у вас очень тяжелые игровые сервера, либо ip.board подобно windows - чем больше ресурсов даешь, тем больше их расходует х)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Кстати, форумные таблицы в mysql у меня в InnoDB

 

Load average: 0.09 0.19 0.13

CPU: 4-8%

mem: 365 used

 

перегнал таблицы в myisam:

ransactions: 163 hits

Availability: 100.00 %

Elapsed time: 30.39 secs

Data transferred: 2.26 MB

Response time: 1.32 secs

Transaction rate: 5.36 trans/sec

Throughput: 0.07 MB/sec

Concurrency: 7.10

Successful transactions: 163

Failed transactions: 0

Longest transaction: 2.14

Shortest transaction: 0.51

 

Данные в siege очень часто прыгают, как то не объективно...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Все эти замеры конечно интересны, но что делать и как оптимизировать?

Ясно одно - 3 тяжелее и с этим что-то надо делать...

Возможно оптимизация настроек MySQL исправит ситуацию?

Использую VPS 3 на HC:

Xeon 4×1000 МГц

RAM, Мб 2048

CentOS

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Ну вот я, например, стал использовать Memcache вместо дискового кеша. Разгружает мальца сервер. Но если нагрузка не нравится все равно - профайлер в руки, смотреть узкие места и бороться с ними.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вообще уже давно нужно переименовать тему и назвать ее не "ускоряем трёшку"
А "мерялка скорости у трешки"

Так как по ускорению тут нет не чего
Все зависит от хостера, у меня она летает без всяких извращений
http://www.remrai.ru

А если еще извратиться и что то с ней сделать, то будет самолет
В тему заходишь, а тут дядьки сравнивают у кого какой
Больше флуда с цифрами, чем дельных советов

Изменено пользователем Док
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Вообще уже давно нужно переименовать тему и назвать ее не "ускоряем трёшку"

А "мерялка скорости у трешки"

 

Так как по ускорению тут нет не чего

Все зависит от хостера, у меня она летает без всяких извращений

http://www.hondadoctor.ru

 

А если еще извратиться и что то с ней сделать, то будет самолет

В тему заходишь, а тут дядьки сравнивают у кого какой

Больше флуда с цифрами, чем дельных советов

Use memcache, Luke :D Сейчас вот все это дело профайлить собираюсь, мож выйдет что интересного.

 

Поглядел мельком на профайл... выгдядит все весьма шустро. В основном от 11 до 50 ms генерация страницы. Т.е шустро, один лишь раз выдало 242 ms, что удивило, поглядел, это была главная страница портала, там bbcode парсились (в базе они хранятся в первозданном виде). вот и выдало интересный результат. Если кому интересно - могу выложить логи профайла.

Использовал xdebug и wincachegrid

 

Версия форума: 3.0.4

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.