LINUX.ORG.RU
решено ФорумAdmin

Машка-неваляшка

 , , , ,


0

1

Доброго дня!

Есть распостранённая проблема как тут

Конфиг мускуля

[client]
port=3306
socket=/var/run/mysqld/mysqld.sock

[mysqld_safe]
socket=/var/run/mysqld/mysqld.sock

[mysqld]
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
port=3306
basedir=/usr
datadir=/var/lib/mysql
tmpdir=/tmp
lc-messages-dir=/usr/share/mysql
log_error=/var/log/mysql/error.log

symbolic-links=0

skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 16M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

#innodb_use_native_aio = 0
innodb_file_per_table

#max_connections=70
#max_user_connections=30
wait_timeout=10
interactive_timeout=50
long_query_time=5

!includedir /etc/mysql/conf.d/

Параметры VPS

Процессор 3 ядра Intel Xeon

ОЗУ 3096 Mb

SSD-диск 40 000 Mb

На сервере nginx + php7-fpm + memcache и полтора десятка сайтов на Wordpress. Как добиться сабжа, пацаны?

Добавлено

Понятно, что можно заюзать своп, но, имхо, это кривое решение. Пришел за советом снова :-)

★★★★★

Последнее исправление: Twissel (всего исправлений: 4)
Ответ на: комментарий от anonymous

Во-первых, надеюсь это временное решение.

Во-вторых, как бы это проблемы хостера :-D

Twissel ★★★★★
() автор топика

Если у тебя тупо не хватает памяти, то никак, без использования свопа или увеличения памяти. Посмотри, может в php-fpm количество процессов можно подрезать.

WARNING ★★★★
()
Ответ на: комментарий от Twissel

Бывают. Но это очень сильное колдунство. Ты, очевидно, не готов. Я, кстати, тоже.

WARNING ★★★★
()
Ответ на: комментарий от anonymous

Хватит повторять вредительские мифы, а?

intelfx ★★★★★
()
Ответ на: комментарий от Twissel

Я бы написал своими словами, но цитата тут лучше:

БАТТХЁРТ — Новый мем ньюфагов. Если ты используешь слово баттхёрт, твой пинус длиннее автоматически, ты крут и плевал на всех. Кто-то предлагает соснуть хуйца? Он баттхёрт. Кто-то фейлит или троллит? Он баттхёрт. Заебали куклофаги? Баттхёрт. Быдло? Небыдло? То же самое. Кто-то опускает тебя в треде, который ты создал? Знай, он баттхёрт. Выебали нигры? Это НАСТОЯЩИЙ баттхёрт. Ничего не бойся, со словом баттхёрт ты превратишь всех в говно. Дерзай же!

awesomebuntu
()
Ответ на: комментарий от WARNING

Да, поработаю с pm.max_children для начала.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от goingUp

128 Мб, дефолтное значение.

Похоже процесс php-fpm одного из хостов.

Я пока указал в http://www.conf pm.max_children 60 И для каждого из domain{n}.conf pm.max_children 20 . Стало получше вроде.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 2)
Ответ на: комментарий от goingUp

Уменьшил до 64 Мб. ЧСХ, выжирает память где-то после 4-6 часов аптайма, со свопом не падает, но все равно ведь будет подтормаживать, когда сильно свопится.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от awesomebuntu

А ты смотрел? Серьёзно его смотреть не возможно, только ржать.

mandala ★★★★★
()
Ответ на: комментарий от Twissel

Парсер лоркода безумен, не уверен что получится это место поправить. (c) maxcom

mandala ★★★★★
()

Похоже, что «течет» php-fpm.

Еще уменьшил pm.max_children до 45.

Так как с 60-ю после 12 часов работы все равно все жутко свопилось.

KRoN73, что-то подскажешь?

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

KRoN73, что-то подскажешь?

swap + zram. Ничего некошерного тут нет :) Я так даже на 768Мб RAM VPS гонял относительно насыщенный форум.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Спасибо. На всякий случай конфиги php-fpm

[site1.com]
listen = /var/run/php/site1.com.sock
listen.allowed_clients = 127.0.0.1

user = admin
group = admin

listen.owner = admin
listen.group = www-data

pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 10

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

«Мастер-конфиг»

[www]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
user = www-data
group = www-data
pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 20
Twissel ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Установил zram.

Он создал вместо свопа на гиг своп на 2.48 GB, посмотрим как оно будет работать.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Хотя в статусе вот такое

Апр 26 12:44:19 site.com init-zram-swapping[485]: Setting up swapspace version 1, size = 505 MiB (529547264 bytes)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

А все, я затупил. zram это же по сути сжатие содержимого ОЗУ с отображением этой области на специальное блочное устройство.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Да. ~70 Мб. Но лучше дай пожалуйста однострочник, чтобы точно подсчитать.

Пока zram помог.

Но и числа хочу поумножать :-)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Вот такой

ps -ylC php-fpm --sort:rss | awk '{sum+=$8; ++n} END {print "Tot="sum"("n")";print "Avg="sum"/"n"="sum/n/1024"MB"}'
Не работает, почему-то.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Может быть хватило бы и 30 процессов, это будет по 10 процессов на ядро. Запросы сверх 30 будут становиться в очередь. Мускулу тогда можно поставить памяти побольше, а то innodb_buffer_pool_size 64мб маловато, если таблицы innodb. По крайней мере стоит попробовать.

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от goingUp

И тут я уже исправился, поставил 100M :-)

Спасибо за советы. Буду писать заказчику, что это предел, имхо.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Этот параметр действительно помог.

Потребление памяти уменьшилось раза в три :-)

Twissel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.