Настройка VPS/VDS под SMF

Автор meedveed, 26 февраля 2011, 20:28:14

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

meedveed

Доброго времени суток!

Вкратце о проблеме. Думаю многие сталкивались с проблемой, когда хостер начинает давить по поводу "большой нагрузки" на хостинг. Подумав немного приняли решение переехать на VPS, как правильное продолжение развития проекта. Форум посещают в среднем 1200- 1500 уников/день. Одновременно на сайте могут находиться до 200 человек. Постепенно количество посетителей растет.
Взяли сервер: 1000МГц, 384МБ ОЗУ.

Установлено: CentOS 5.5, Apache2, Nginx, MySQL, APC, SMF 2.0 RC2.

На сревере форум стал чувствовать себя гораздо хуже чем на хостинге. Заметно снизилась производительность(главная страница генерируется 10-20 секунд).
Почти всегда проц и память используется на 100%, большей частью Apache-ем.
Есть ли смысл использовать другой акселератор PHP (в частности memcached)? Какую настройку для Apache2, MySql, APC посоветуете? Повысится ли производительность при переходе на старшую версию?

digger®

Цитата: meedveed от 26 февраля 2011, 20:28:14
Взяли сервер: 1000МГц, 384МБ ОЗУ.

Установлено: CentOS 5.5, Apache2, Nginx, MySQL, APC, SMF 2.0 RC2.

На сревере форум стал чувствовать себя гораздо хуже чем на хостинге. Заметно снизилась производительность(главная страница генерируется 10-20 секунд).
Почти всегда память используется на 100%.
Есть ли смысл использовать другой акселератор PHP (в частности memcached)? Какую настройку для Apache2, MySql, APC посоветуете? Повысится ли производительность при переходе на старшую версию?

Памяти мало, нужно все настраивать в расчете на такой размер.
С Memcached особого смысла связываться нет. От Апача, вообще, следует отказаться.

meedveed

ЦитироватьОт Апача, вообще, следует отказаться.

А в качастве альтернативы что можно использовать?

digger®

#3
Цитата: meedveed от 27 февраля 2011, 10:35:39
А в качастве альтернативы что можно использовать?
Nginx, Lighttpd

ЦитироватьВзяли сервер: 1000МГц, 384МБ ОЗУ.
Почем VPS?

meedveed

#4
Цитата: digger от 27 февраля 2011, 10:43:48
Nginx, Lighttpd

Избавился от apache2. Перешел с LAMP на LNMP.
Скорость по прежнему не ахти. Память конечно используется гораздо экономнее. Но желаемого быстродействия добиться не удалось.
Сейчас использую worker_processes 2 для nginx и max_children 2 для php_fpm. Уровень кеширования для форума 1, по прежнему используется APC. Памяти гуляет где-то 150 - 200 МБ.

Цитата: digger от 27 февраля 2011, 10:43:48
Почем VPS?

VPS 15$/мес. по цене хорошего хостинга.

Может еще что можно оптимизировать?

digger®

Цитата: meedveed от 28 февраля 2011, 10:34:14
Сейчас использую worker_processes 2  для nginx
Можно 1 попробовать.

Цитировать
и max_children 2 для php_fpm.
php_fpm можно с tcp на сокет перевесить, будет немного быстрее.
pm=static стоит, раз два ребенка?
pm.max_requests лучше ограничить, чтобы память не утекала.

Цитировать
Уровень кеширования для форума 1
Можно 2 попробовать.

Цитировать
VPS 15$/мес. по цене хорошего хостинга.
Может там оверселлинг дикий? Сто виртуальных серваков на этом же vps, которые неизвестно чем его грузят.

Цитировать
Может еще что можно оптимизировать?
Mysql
mysqltuner.pl и tuning-primer.sh в помощь
Обязательно аватары перекинуть в отдельную папку и отдавать напрямую, иначе для показа каждого аватара запрос в mysql делается, а ей и так не сладко.

top, iostat, phpinfo() и настройки APC можно посмотреть?

meedveed

ЦитироватьМожно 1 попробовать.
изменил, пока безрезультатно

Цитироватьphp_fpm можно с tcp на сокет перевесить, будет немного быстрее.
изначально настроено через сокет

Цитироватьpm=static стоит, раз два ребенка?
pm.max_requests лучше ограничить, чтобы память не утекала.
да static
ограничено до 500

Цитироватьtop, iostat, phpinfo() и настройки APC можно посмотреть?

top:
Tasks:  31 total,   7 running,  24 sleeping,   0 stopped,   0 zombie
Cpu(s): 96.1%us,  3.9%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    384000k total,   178564k used,   205436k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
9947 nginx     20   0 89116  22m  12m R 10.3  6.0   0:24.79 php-fpm
9950 nginx     25   0 88592  19m 9248 R 10.0  5.1   0:14.41 php-fpm
9952 nginx     25   0 88840  19m 9720 R  9.6  5.2   0:17.63 php-fpm
9949 nginx     20   0 88572  20m  10m R  9.0  5.4   0:18.16 php-fpm
9948 nginx     25   0 88744  25m  15m R  7.6  6.9   0:22.29 php-fpm
10230 mysql     15   0 50352  17m 4592 S  2.7  4.6   5:22.21 mysqld
12282 nginx     15   0 19364 2932  976 S  1.0  0.8   0:00.67 nginx
    1 root      15   0  2156  660  572 S  0.0  0.2   0:00.89 init
1957 root      21  -4  2244  552  344 S  0.0  0.1   0:00.00 udevd
3161 root      17   0  4624 1464 1220 S  0.0  0.4   0:00.05 bash
3793 root      16   0  1812  568  472 S  0.0  0.1   0:03.16 syslogd
3809 root      15   0  7180 1064  660 S  0.0  0.3   0:01.58 sshd
3823 root      15   0  5284  528  252 S  0.0  0.1   0:00.01 vsftpd
3938 root      15   0  1960  580  456 S  0.0  0.2   0:00.51 dovecot
3939 root      15   0  7932 1968 1456 S  0.0  0.5   0:00.40 dovecot-auth
3953 exim      15   0 11984 1248  676 S  0.0  0.3   0:00.00 exim
4015 root      15   0  5376 1112  572 S  0.0  0.3   0:00.01 crond
4049 xfs       18   0  3392 1104  740 S  0.0  0.3   0:00.00 xfs
4080 dovecot   15   0  4984 1820 1508 S  0.0  0.5   0:00.18 imap-login
4081 dovecot   15   0  4984 1824 1508 S  0.0  0.5   0:00.21 imap-login
4082 dovecot   15   0  4984 1820 1508 S  0.0  0.5   0:00.19 imap-login
9946 root      15   0 85536 9256 1408 S  0.0  2.4   0:00.01 php-fpm
10157 root      18   0  4572 1200 1044 S  0.0  0.3   0:00.02 mysqld_safe
12281 root      24   0 18316 1232  312 S  0.0  0.3   0:00.00 nginx
13846 root      15   0  7056 2616 1852 R  0.0  0.7   0:00.77 mc
13851 root      15   0  4624 1464 1228 S  0.0  0.4   0:00.02 bash
23628 root      15   0  2288 1028  816 R  0.0  0.3   0:00.09 top
28308 dovecot   15   0  4980 1816 1504 S  0.0  0.5   0:00.04 pop3-login
28346 dovecot   15   0  4980 1816 1504 S  0.0  0.5   0:00.05 pop3-login
28347 dovecot   15   0  4980 1820 1504 S  0.0  0.5   0:00.06 pop3-login
32660 root      15   0 10172 2844 2288 S  0.0  0.7   0:00.30 sshd


phpinfo:
http://rebenok.cn.ua/1.php

APC:
apc.ini.rpmnew

; Enable apc extension module
extension = apc.so

; Options for the APC module version 3.1.x

; This can be set to 0 to disable APC.
apc.enabled=1
; The number of shared memory segments to allocate for the compiler cache.
apc.shm_segments=1
; The size of each shared memory segment in MB.
apc.shm_size=64
; A "hint" about the number of distinct source files that will be included or
; requested on your web server. Set to zero or omit if you're not sure;
apc.num_files_hint=1024
; Just like num_files_hint, a "hint" about the number of distinct user cache
; variables to store.  Set to zero or omit if you're not sure;
apc.user_entries_hint=4096
; The number of seconds a cache entry is allowed to idle in a slot in case this
; cache entry slot is needed by another entry.
apc.ttl=0
; The number of seconds a user cache entry is allowed to idle in a slot in case
; this cache entry slot is needed by another entry.
apc.user_ttl=0
; The number of seconds that a cache entry may remain on the garbage-collection list.
apc.gc_ttl=3600
; On by default, but can be set to off and used in conjunction with positive
; apc.filters so that files are only cached if matched by a positive filter.
apc.cache_by_default=1
; A comma-separated list of POSIX extended regular expressions.
apc.filters
; The mktemp-style file_mask to pass to the mmap module
apc.mmap_file_mask=/tmp/apc.XXXXXX
; This file_update_protection setting puts a delay on caching brand new files.
apc.file_update_protection=2
; Setting this enables APC for the CLI version of PHP (Mostly for testing and debugging).
apc.enable_cli=0
; Prevents large files from being cached
apc.max_file_size=1M
; Whether to stat the main script file and the fullpath includes.
apc.stat=1
; Vertification with ctime will avoid problems caused by programs such as svn or rsync by making
; sure inodes havn't changed since the last stat. APC will normally only check mtime.
apc.stat_ctime=0
; Whether to canonicalize paths in stat=0 mode or fall back to stat behaviour
apc.canonicalize=1
; With write_lock enabled, only one process at a time will try to compile an
; uncached script while the other processes will run uncached
apc.write_lock=1
; Logs any scripts that were automatically excluded from being cached due to early/late binding issues.
apc.report_autofilter=0
; RFC1867 File Upload Progress hook handler
apc.rfc1867=0
apc.rfc1867_prefix =upload_
apc.rfc1867_name=APC_UPLOAD_PROGRESS
apc.rfc1867_freq=0
apc.rfc1867_ttl=3600
; Optimize include_once and require_once calls and avoid the expensive system calls used.
apc.include_once_override=0
; not documented
apc.coredump_unmap=0
apc.file_md5=0
apc.preload_path




meedveed

Да все очень плохо где-то после 40 пользователей онлайн.

eaccelerator.enable   0.

top - 11:13:43 up 15:31,  1 user,  load average: 5.89, 5.72, 5.82


meedveed

Не отображать названия хостов пользователей" включено.

А есть смысл использовать сжатие трафика(сейчас отключено)?

digger®

Цитата: meedveed от 28 февраля 2011, 12:45:10
Не отображать названия хостов пользователей" включено.
А есть смысл использовать сжатие трафика(сейчас отключено)?
Пока не имеет. Проц будет грузить.

Тормоза загадочные. То ли VDS такой жухлый, то ли проблема в чем-то другом вообще.
При этом фактическое время открытия страниц заметно больше чем время их генерации. Не знаю чего еще на пальцах советовать, если только дадите доступ вживую посмотреть.

ufolog

Если на VPS стало хуже, чем на хостинге значит ваш VPS на OpenVZ и на лицо оверселлинг. Возмите на тест аналогичный VPS на XEN и почувствуйте разницу.

karavan


Кухарь

Какой размер вашей БД?
Скорей всего вам придется переехать на сервер с размером оперативки не менее 1гб.

meedveed

Цитата: kpm от 28 февраля 2011, 15:52:02
Какой размер вашей БД?
Скорей всего вам придется переехать на сервер с размером оперативки не менее 1гб.

Размер БД около 100 МБ.
Памяти после перехода с apache на php_fpm достаточно(сейчас свободно около 200МБ).

Кухарь

А почему тогда тормозит так сильно?

Mavn

да может дисковая нагружена в результате и проблема
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Кухарь

Что бы дисковое разгрузить нужно памяти добавить :)

Mavn

хе хе при большом колве обращений к файлам каким образом память уменьшит нагрузку на дисковую?
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Кухарь

Когда вся база в памяти то на винт обращения не идут.

Mavn

ты хочешь сказать что на ноде где дофига виртуалок у всех бд висят в памяти?
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Drakonsa

Цитата: kpm от 07 марта 2011, 17:58:16
Когда вся база в памяти то на винт обращения не идут.
:facepalm:

Кухарь

Разве бд не кешируется в памяти? Зачем постоянно лезть в таблицу категорий форума если она не меняется?

meedveed

Вопрос решился заменой хостера.