Drupal 7 + 1Gb RAM

Главные вкладки

Аватар пользователя gelfandbein gelfandbein 11 декабря 2012 в 13:03

Добрый день, уважаемая публика!

Хочу на VPS поднять Drupal 7 Commerce2...
Intel(R) Xeon(R) CPU E5620 @ 2.40GHz 2393.892 Mhz
RAM 1Gb, HDD 15Gb
Debian 2.6.32-6-pve i686, Apache 2.2.16, Nginx 1.2.4, MySQL 5.1.66-0, PHP 5.3.3-7, Zend 2.3.0, with Suhosin 0.9.32.1
В свободном полёте 400мб озу всегда свободно

Вообщем когда начинаю устанавливать Д7 и потом ходить по админке и сайта
память сжирается сразу вся ( до 120Мб на процесс апача) и загружка процессора от 60% на установке и до 30% во время сёрфинга по сайту...

Drupal 6 летает "на ура" и нет никаких тормозов и сжираний ресурсов.

PS: причём перепробовал все свежие движки магазинов и cms - нигде такого сжирания ресурсов и процессора не наблюдалось!

Вот мои настройки сервисов, просьба сильно не пинать, пытался сам по документации настроить Smile

apache.conf

Timeout 300
KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
    StartServers         2
    MinSpareServers      1
    MaxSpareServers      2
    MaxClients           10
    MaxRequestsPerChild  200
</IfModule>

my.conf

[mysqld]
flush_time      = 300
key_buffer              = 64M
key_buffer_size         = 128M
key_cache_division_limit= 70

max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8M

max_heap_table_size     = 48M
tmp_table_size          = 48M
read_rnd_buffer_size    = 384K
sort_buffer_size        = 384K
join_buffer_size        = 384K

myisam-recover         = BACKUP
max_connections        = 50
table_cache            = 512M
query_cache_limit       = 16M
query_cache_size        = 48M
long_query_time = 1
log-queries-not-using-indexes
expire_logs_days        = 7

max_binlog_size         = 100M
default-character-set = utf8
innodb_buffer_pool_size = 64M
[geshifilter-mysql]&#10;default-character-set = utf8&#10;[isamchk]&#10;key_buffer               = 16M&#10;

[/geshifilter-mysql]

Комментарии

Аватар пользователя sg85 sg85 11 декабря 2012 в 18:51

А на кой Вам вообще сдался апач? Так сильно нужен phpmyadmin(на продакшене им в идеале и пахнуть не должно) или прогрессбар при загрузке файлов?

Аватар пользователя sg85 sg85 11 декабря 2012 в 19:01

2 полноценных веб демона, без причины, смысла жить вместе не имеют IMHO

З.Ы. php-fpm ресурсов жрет заметно меньше, чем apace+mod-php

Аватар пользователя Crea Crea 11 декабря 2012 в 18:59

Акселератор стоит ? Проверьте, что в нем свободная память есть. Если памяти нехватает, такие эффекты могут быть.

Аватар пользователя chilic chilic 11 декабря 2012 в 19:00

"sg85" wrote:

2 полноценных веб демона, без причины, смысла жить вместе не имеют IMHO

Обоснование последует?

Аватар пользователя sg85 sg85 11 декабря 2012 в 19:02

"chilic" wrote:
Обоснование последует?

"sg85" wrote:
З.Ы. php-fpm ресурсов жрет заметно меньше, чем apace+mod-php

*h пропустил

Аватар пользователя chilic chilic 11 декабря 2012 в 19:03

"sg85" wrote:
З.Ы. php-fpm ресурсов жрет заметно меньше, чем apace+mod-php

Тесты, графики? Или это просто предположение?

Аватар пользователя sg85 sg85 11 декабря 2012 в 19:07

"chilic" wrote:
Тесты, графики? Или это просто предположение?

Графиков не рисовал, но коли так интересно - ими половина интернетов забита, попробуйте ради интереса на виртуалке apache+php-mod+nginx против nginx+php-fpm, согласен, ресурсов там будет заметно меньше, но и разница будет заметна невооруженным глазом.

Аватар пользователя sg85 sg85 11 декабря 2012 в 19:11

Просто сам не так давно переместился с apache сперва на связку apache+nginx, а потом попробовал просто nginx без апача - понравилось.

Чтоб понятней было - разницы между apache+nginx и apache при малом числе пользователей почти нет.

Аватар пользователя chilic chilic 11 декабря 2012 в 19:13

"sg85" wrote:
будет заметна невооруженным глазом

Очень сомнительное утверждение.
"sg85" wrote:
ими половина интернетов забита

Читаю ежедневно.
Кроме утверждения лучше, потому что мне понравилось ничего не видел.

Поэтому считаю что под некоторые задачи подходит php-fpm + nginx, под другие nginx + mod_php.

Аватар пользователя sg85 sg85 11 декабря 2012 в 19:36

не совсем верно, php-fpm + nginx против nginx + apache + mod_php, в 1м случае статику отдает nginx, за пых отвечает php-fpm, во втором статику опять же nginx, а вот за пых, mod_php, который, в свою очередь, работает через индейца, на кой тут сдался индеец со всеми своими наворотами, я лично, не совсем понимаю.

Индеец нужен если Вам необходимы его модули, одним из которых и является mod_php

Ну т.е. стартует индеец, вызывает все подключенные модули, отрабатывает их, ищет .htaccess(если у Вас он не скопирован в конфиги), а это все и память и проц, и только после этого вызовет mod_php, который не сильно отличается от одинокого php-fpm

Ну и вот тогда еще один холиварный вопрос: что менее ресурсоемко - сокет или тсп?

"chilic" wrote:
Очень сомнительное утверждение.

Виртуальный сервер(OVB) на домашнем компе на nginx работает в полтора раза быстрее(одна ОС, один и тот же сайт), чем apache на полудохлом арендованном сервере(правда конфигурация у этого сервера не сильно отличается от моего домашнего, т.е. десктопный вариант, но характеристики заметно выше, чем у виртуального), если бы не это маленькое наблюдение, я бы молчал.

Аватар пользователя chilic chilic 11 декабря 2012 в 19:30

Отключаете на apache ненужные модули, получаете стабильную работу php с минимальными утечками памяти и нормально работающим опкоде-кэшем.
Вот накой он там нужен.

"sg85" wrote:
и только после этого вызовет mod_php

Который уже находиться в памяти и вкомпилирован в apache т.е. произойдёт прямая передача данных в памяти.

"sg85" wrote:
который не сильно отличается от одинокого php-fpm

Чёэто?

Аватар пользователя sg85 sg85 11 декабря 2012 в 19:39

"chilic" wrote:
Отключаете на apache ненужные модули, получаете стабильную работу php с минимальными утечками памяти и нормально работающим опкоде-кэшем.
Вот накой он там нужен.

т.е. отключить апач и оставить голый апач и mod-php? зачем?
"chilic" wrote:
Который уже находиться в памяти и вкомпилирован в apache т.е. произойдёт прямая передача данных в памяти.

да нет, он будет вызван при обращении, запустите top ради интереса.
"chilic" wrote:
Чёэто?

php-fpm отдельный демон, по сути тот же mod-php, только без апача, т.е. самостоятельный, к тому же может работать и через сокет, в отличии от апача.

Аватар пользователя gelfandbein gelfandbein 10 ноября 2015 в 11:48

огого расшевелились Smile

APC стоит, в данный момент стоит 1Гб ОЗУ (+1Гб swap), но вот хотелось бы сэкономить и на 512 вернуться... но я смотрю что может и не хватить Smile

Прилагаю картинку скриншот, во время доступа на сайт - пик загрузки на 1-2 секунды - а переполненные процессы так и висят Smile

Аватар пользователя sg85 sg85 11 декабря 2012 в 20:03

у Вас там скорее проц охреневает, а не память, но в любом случае, php-fpm будет есть её меньше, чем apache+mod-php, однако, проблему с охреневанием процессора это может и не решить, помню у меня была подобная проблема из-за модуля Views_jCarousel, решилась путем его уничтожения и прикручивания js плагина к представлению ручками.

Аватар пользователя Crea Crea 11 декабря 2012 в 20:20

gelfandbein,
то, что APC установлен, еще не означает, что он работает. Например, если нехватает памяти, кеширование отключается частично или полностью. Проверьте хватает ли APC памяти для кеширования всего сайта. Это можно сделать через apc.php,
Сколько вы ему дали памяти ? Даже для 6 Друпала 128МБ для APC бывает нехватает.

Аватар пользователя chilic chilic 11 декабря 2012 в 22:44

"sg85" wrote:
php-fpm будет есть её меньше, чем apache+mod-php

Насколько меньше? Есть цифры?

Сразу спросите автора топика, а настроит ли он isp-панель на nginx+php-fpm?
Зачем ему антивирусник на этом впс?

Аватар пользователя sg85 sg85 11 декабря 2012 в 23:33

"chilic" wrote:
Насколько меньше? Есть цифры?

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

"chilic" wrote:
Сразу спросите автора топика, а настроит ли он isp-панель на nginx+php-fpm?

судя по
"gelfandbein" wrote:
не могу найти где APC настраивается... нигде на диске кроме phpmyadmin нет такого файла (apc.php)

честно говоря, не думаю...

"chilic" wrote:
Зачем ему антивирусник на этом впс?

?

З.Ы. мне этот разговор напоминает недавний спор с одним моим приятелем сисадмином "винда рулит - никсы хлам, а IIS вашего индейца маму делал" и при этом тоже ни одного аргумента, кроме "не верю"(с)

Встречный вопрос, а зачем nginx если apache справляется?

Аватар пользователя gelfandbein gelfandbein 12 декабря 2012 в 0:48

Smile VPS настраивал хостер, php-fpm не установлено, соответственно и не настроено... расскажите пожалуйста какую связку настроить и протестировать?

Аватар пользователя sg85 sg85 12 декабря 2012 в 1:52

"gelfandbein" wrote:
:) VPS настраивал хостер, php-fpm не установлено, соответственно и не настроено... расскажите пожалуйста какую связку настроить и протестировать?

если у Вас все это дело работает через Апач, то логично, что php-fpm и пахнуть не должно. Если не уверены, что сможете настроить ISPManager, и Вам так нужен phpmyadmin, то лучше про php-fpm забыть, ну или поиграться с ним на тестовой машине, авось разберетесь.

Да, кстати, у Вас таблицы в MyISAM?

Аватар пользователя sg85 sg85 12 декабря 2012 в 3:16

"gelfandbein" wrote:
InnoDB напротив всех полей, а в итоговом столбце - MyISAM

не совсем понял, но судя по конфигам(если они приведены полностью), таблицы на InnoDB у Вас должны еле ползать, попробуйте добавить в my.cnf в раздел [mysqld] строчку "innodb_flush_log_at_trx_commit=0"(без кавычек, либо значение 2, по умолчанию 1, что значит писать лог на диск при каждом чихе, что не совсем благоприятно сказывается на производительности, за то попадает под требования ACID, хотя на сколько помню, друпал 6 не использует транзакции, в код 7 абстрактного слоя бд, честно говоря, не заглядывал, но не думаю, что он их начал использовать, тем более по назначению)

Аватар пользователя gelfandbein gelfandbein 12 декабря 2012 в 3:49

sg85 wrote:
"gelfandbein" wrote:
InnoDB напротив всех полей, а в итоговом столбце - MyISAM

не совсем понял, но судя по конфигам(если они приведены полностью), таблицы на InnoDB у Вас должны еле ползать, попробуйте добавить в my.cnf в раздел [mysqld] строчку "innodb_flush_log_at_trx_commit=0"(без кавычек, либо значение 2, по умолчанию 1, что значит писать лог на диск при каждом чихе, что не совсем благоприятно сказывается на производительности, за то попадает под требования ACID, хотя на сколько помню, друпал 6 не использует транзакции, в код 7 абстрактного слоя бд, честно говоря, не заглядывал, но не думаю, что он их начал использовать, тем более по назначению)

Спасибо, поставил, тестирую.
Может быть db в MYISAM конвертнуть? Напишите желательно как точно и правильно это сделать если возможно Smile

Аватар пользователя gelfandbein gelfandbein 12 декабря 2012 в 6:43

Вот что после рестарта в syslog, может быть поможет..

Dec 12 01:52:36 mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql
Dec 12 01:52:36 mysqld: 121212  1:52:36 [Warning] option 'thread_cache_size': unsigned value 8388608 adjusted to 16384
Dec 12 01:52:36 mysqld: 121212  1:52:36 [Warning] option 'table_cache': unsigned value 536870912 adjusted to 524288
Dec 12 01:52:36 mysqld: 121212  1:52:36 [Warning] '--log_slow_queries' is deprecated and will be removed in a future release. Please use ''--slow_query_log'/'--slow_query_log_file'' instead.
Dec 12 01:52:36 mysqld: 121212  1:52:36 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
Dec 12 01:52:36 mysqld: 121212  1:52:36 [Warning] Changed limits: max_open_files: 1024  max_connections: 50  table_cache: 482
Dec 12 01:52:36 mysqld: 121212  1:52:36 [Note] Plugin 'FEDERATED' is disabled.
Dec 12 01:52:36 mysqld: 121212  1:52:36  InnoDB: Initializing buffer pool, size = 64.0M
Dec 12 01:52:36 mysqld: 121212  1:52:36  InnoDB: Completed initialization of buffer pool
Dec 12 01:52:36 mysqld: 121212  1:52:36  InnoDB: Started; log sequence number 0 2101625482
Dec 12 01:52:36 mysqld: 121212  1:52:36 [Note] Event Scheduler: Loaded 0 events
Dec 12 01:52:36 mysqld: 121212  1:52:36 [Note] /usr/sbin/mysqld: ready for connections.
Dec 12 01:52:36 mysqld: Version: '5.1.66-0+squeeze1-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Debian)
Dec 12 01:52:37 /etc/mysql/debian-start[12175]: Upgrading MySQL tables if necessary.
Dec 12 01:52:37 /etc/mysql/debian-start[12178]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Dec 12 01:52:37 /etc/mysql/debian-start[12178]: Looking for 'mysql' as: /usr/bin/mysql
Dec 12 01:52:37 /etc/mysql/debian-start[12178]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Dec 12 01:52:37 /etc/mysql/debian-start[12178]: This installation of MySQL is already upgraded to 5.1.66, use --force if you still need to run mysql_upgrade
Dec 12 01:52:37 /etc/mysql/debian-start[12185]: Checking for insecure root accounts.
Dec 12 01:52:37 /etc/mysql/debian-start[12189]: Triggering myisam-recover for all MyISAM tables

PS: кстати MySQLTuner в STATUSе пишет Storage Engine Statistics +InnoDB -ISAM

Поднял собственно...
General Cache Information
APC Version 3.1.3p1
PHP Version 5.3.3-7+squeeze14
APC Host host
Server Software Apache/2.2.16 (Debian)
Shared Memory 1 Segment(s) with 30.0 MBytes
(mmap memory, pthread mutex locking)

Аватар пользователя sg85 sg85 12 декабря 2012 в 6:44

"gelfandbein" wrote:
Может быть db в MYISAM конвертнуть? Напишите желательно как точно и правильно это сделать если возможно :)

В Вашем случае, все таблицы в базах данных друпала(системные базы данных не трогать) лучше всего переделать как раз таки в InnoDB, если не хотите, чтоб при большом наплыве пользователей Ваш сайт пал жертвой залоченных таблиц.(тут как раз где-то примерно неделю назад кто-то жаловался на это).

Посмотрел логи, после чего заметил в конфиге "table_cache = 512M", Вы реально собрались кешировать 512 миллионов таблиц?(как минимум уберите M) Запись вида, !REG3XP1!> в my.cnf, честно говоря, ранее не встречал.

Аватар пользователя sg85 sg85 12 декабря 2012 в 13:30

Соль в том, что 100% от процессора сайт поедать не должен, не зависимо, есть там кеш или нету, apache там или iis. Однако, для входа в подобный ступор причин достаточно. И, кстати, что-то у Вас там больно много процессов апача, в связке с nginx такого быть вроде не должно.

"gelfandbein" wrote:
Спасибо, поставил, тестирую.

а чего там тестировать? прирост производительности обычно примерно в 100-1000 раз, в зависимости от железа(то по сути был "ручник")

Аватар пользователя chilic chilic 17 декабря 2012 в 15:41

"sg85" wrote:
Вам так это интересно, возьмите с собой секундомер.

Взял, померил.
Приношу извинения за холивар.
Разницы по времени существенной не заметил, расход памяти меньше.
Ещё заметил пару не очень приятных вещей при использовании apache.

Аватар пользователя sg85 sg85 17 декабря 2012 в 16:13

Тоже еще раз померил, тоже ощутимой разницы в цифрах не заметил, хотя на слабом десктопном железе апач почему-то жутко тормозит(в показаниях этого не нашел, либо не тем местом смотрел), особенно самый 1й запрос после рестарта апача(10 секунд, видимо конфиги и модули он подгружает именно после первого обращения к нему после рестарта, причем при старте на холодную(после физического отключения машины), такой фигни не наблюдается), но это не такая страшная проблема. И все же не вижу смысла использовать апач только как прокладку для mod-php, должна быть как минимум одна причина, впрочем, невозможность настроить ISP(если он вообще нужен) под nginx можно считать таковой.

Аватар пользователя chilic chilic 17 декабря 2012 в 16:16

Раньше была проблема шаринга опкоде-кэша (apc,xcache) между потоками php-fpm. Как бы поэтому и юзался апач.
Сейчас ситуация по APC лучше, а вот с xcache не знаю.
Может есть информация об этом?

Аватар пользователя sg85 sg85 17 декабря 2012 в 16:44

Честно говоря, даже не пытался, лично меня на данный момент и APC полностью устраивает(ибо я лентяй), но ответ на Ваш вопрос есть тут (посту меньше месяца)