Арендовал VDS на 512Мб RAM, запустил сайт, а mysql падает сам по себе, пишет: mysqld Killed. Почитал — оказывается, память виновата оперативная, но можно настроить MySQL и под 512Мб. До настройки, mysql убивалась через 15 минут. Все что нужно было это: пару раз открыть страницы сайта и зайти в админку WordPress.
После установки параметров что ниже — работает уже несколько часов, а дальше будет видно :).
Также повысил своп (swap), было 512Мб, я сделал на 2Гб — надеюсь, будет толк.

Настройки для mysqld для 512Мб RAM:

[mysqld]
key_buffer_size = 256M
query_cache_limit=16M
query_cache_size=32M
max_connections=300
read_buffer_size=1M
query_cache_limit=256K
innodb_buffer_pool_size=16M
max_allowed_packet=16M
thread_stack = 64K
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
sort_buffer_size = 1M
table_open_cache = 256
max_heap_table_size = 32M
open_files_limit = 65535
innodb_file_per_table=1
net_buffer_length = 2K
tmp_table_size =32M

performance_schema=off

[myisamchk]
read_buffer = 2M
write_buffer = 2M

Настройки для Apache, он используется у меня позади nginx:

<IfModule prefork.c>
StartServers       1
MinSpareServers    1
MaxSpareServers   3
ServerLimit      10
MaxClients       10
MaxRequestsPerChild  3000
</IfModule>

<IfModule worker.c>
StartServers         1
MaxClients         300
MinSpareThreads     5
MaxSpareThreads     15 
ThreadsPerChild     5
ThreadLimit          25
MaxRequestsPerChild  200
</IfModule>

Настройки для PHP:

realpath_cache_ttl = 300
realpath_cache_size=1M
memory_limit = 48M

Создание swap на 2гб

// узнать есть ли своп уже
# swapon -s     
// если есть, то удалить его если 512Мб был
# swapoff /swapfile
// создать новый своп
# mkdir /dir/swap
# fallocate -l 2G /dir/swap/swap.img
# mkswap /dir/swap/swap.img
# chmod 600 /dir/swap/swap.img
# swapon /dir/swap/swap.img

Теперь прописать в файл /ect/fstab чтобы после перезагрузки сервера своп подключался:

/dir/swap/swap.img swap swap defaults 0 0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *