После переноса нескольких сайтов на новый сервер с Ubuntu 16.04 LTS, большим объемом оперативной памяти (1 Гб) и PHP7 возникла проблема с использованием RAM / swap.
На сервере установлен LEMP-стек и несколько простых сайтов с общей посещаемостью максимум 3-4k уникальных пользователей в сутки. Все приложения (MySQL, Nginx, PHP-FPM, PHP 7 и т.п.) занимают 300-400 МБ (30-40%), но swap используется на 100%.
KiB Mem: 1012720 total, 14172 free, 302536 used, 696012 buff/cache
KiB Swap: 262140 total, 0 free, 262140 used.
629520 avail Mem
node:~$ free -m
total used free shared buff/cache available
Mem: 988 292 135 38 561 617
Swap: 255 255 0
График использование памяти из Munin:
Я знаю о параметре vm.swappiness и он равен 10 в моем случае:
node:~$ cat /proc/sys/vm/swappiness
10
С учетом параметра vm.swappiness SWAP должен использоваться, если RAM занята за 90% или хотя бы не забиваться на 100%. Поскольку на сервере свободно 40-50% оперативной памяти, а SWAP занят на 100%, то vm.swappiness не работает должным образом или что-то неправильно настроено.
Возможно что-то не так с конфигурацией сервера. Вот пример /etc/sysctl.conf:
kernel.panic=10
vm.panic_on_oom=1
vm.swappiness=10
vm.dirty_background_ratio=5
vm.dirty_ratio=10
net.ipv4.conf.all.accept_redirects=0
net.ipv6.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv6.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.conf.all.forwarding=0
net.ipv6.conf.all.forwarding=0
net.ipv4.conf.default.forwarding=0
net.ipv6.conf.default.forwarding=0
net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.all.accept_source_route=0
net.ipv6.conf.all.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
net.ipv6.conf.default.accept_source_route=0
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.proxy_arp=0
net.ipv4.ip_local_port_range=1024 65535
net.core.somaxconn=65536
net.core.netdev_max_backlog=30000
fs.file-max=2097152
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=0
net.ipv4.tcp_fin_timeout=15
net.ipv4.tcp_max_tw_buckets=1440000
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_rfc1337=1
net.ipv4.tcp_no_metrics_save=1
net.ipv4.tcp_mem=50576 64768 98152
net.ipv4.tcp_rmem=4096 524288 11960320
net.core.rmem_max=11960320
net.ipv4.tcp_wmem=4096 524288 11960320
net.core.wmem_max=11960320
net.core.optmem_max=65535
net.ipv4.tcp_max_orphans=65535
net.ipv4.tcp_orphan_retries=0
net.ipv4.tcp_keepalive_time=1800
net.ipv4.tcp_keepalive_intvl=25
net.ipv4.tcp_keepalive_probes=5
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_syn_retries=2
net.ipv4.tcp_synack_retries=3
net.ipv4.tcp_max_syn_backlog=3240000
Могу также показать настройки MySQL, PHP-FPM, Nginx и т.п.
Помогите, пожалуйста, разобраться в чем дело.
Спасибо.