Форумы

GNU.SU - Записки нубо-линуксойда :: Форумы :: Сервисы :: Web-Server
 
<< Предыдущая тема | Следующая тема >>
Ман по настройке серва. nginx+php-fpm+mysql, собираю все в кучку
Модераторы: tastelinux, Frizze, andrey, Bender
Автор Добавил
tastelinux
Срд Сен 15 2010, 01:59
andreika

ID пользователя #1
Зарегистрирован: Птн Апр 30 2010, 12:25

Сообщений: 337
Cразу к настройке

MySQL

Итак, для начала надо увеличить кеш для mysql, иначе он будет часто вылетать с cant-connect с 11 ошибкой, что означает невозможность блокировки сокета:

my.cnf

skip-locking
wait_timeout=60
connect_timeout=10
interactive_timeout=120
join_buffer_size=1M
query_cache_size=128M
query_cache_limit=2M
max_allowed_packet=16M
table_cache=1024
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=4M
key_buffer = 256M
key_buffer_size=64M
myisam_sort_buffer_size = 8M
max_connections = 10000
open_files_limit = 100000
thread_cache_size = 1024M


Также в мускуле желательно выполнить sql-запрос:

set global max_connections = 500;

Дальше, чтобы при добуя открытых файлах ничего не зависало, ожидая, пока дадут доступ на юзанье тех или и иных файлов:

/etc/security/limits.conf

*       soft    nofile  65525
*       hard    nofile  100000


Дальше, надо в целом увеличить лимиты в системе:

/etc/sysctl.conf (взял у лисяры, помогло :) )

kern.ipc.nmbclusters=65536
kern.ipc.somaxconn=32768
kern.ipc.maxsockets=204800
kern.maxfiles=256000
kern.maxfilesperproc=230400

Дальше лезем в конфиг nginx:
worker_processes  8;
worker_rlimit_nofile 51200;
worker_priority -5;
events {
 worker_connections  4096;
 use epoll;
}


Дальше лезем в конфиг php-fpm:

<value name="max_requests">4096</value><value name="max_children">100</value>


естесно это по секциям там..

Еще, надо не забыть проверить права на /var/lib/php/session


MySQL HiLoad + PHP-FPM brainfucking

Тупо решил проблему зависания php-fpm и nginx (как следствие), запросом:

set global max_connections = 500;


И все стало айс! (достаточно побольше одновременных тредов для мускуля)

[NOTICE] fpm_unix_init_main(), line 284: getrlimit(nofile): max:1024, cur:1024
[ERROR] fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)


лог php-fpm

/etc/security/limits.conf

настройка лимитов системы

nginx   hard    nofile  10240


Юзер nginx – это nginx, а nofile – количество открываемых файлов.

Интересный и может быть юзабельный тип:
Increasing the file descriptor limit

The file descriptor limit can be increased using the following procedure:

1. Edit /etc/security/limits.conf and add the lines:

* soft nofile 1024
* hard nofile 65535

2. Edit /etc/pam.d/login, adding the line:

session required /lib/security/pam_limits.so

3. The system file descriptor limit is set in /proc/sys/fs/file-max. The following command will increase the limit to 65535:

echo 65535 > /proc/sys/fs/file-max

4. You should then be able to increase the file descriptor limits using:

ulimit -n unlimited

The above command will set the limits to the hard limit specified in /etc/security/limits.conf.

Note that you may need to log out and back in again before the changes take effect.

ИТОГ = PHP-FPM(PHP-CGI) не мог открыть нужного колва пулов и зависал. Проблема решена. Спасибо силе джедая.
Наверх

 

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System