Я проделал довольно много чтения, прежде чем спрашивать об этом, поэтому позвольте мне предисловие, сказав, что у меня не хватает связей, памяти или процессора, и из того, что я могу сказать, у меня не хватает файлов дескрипторы.
Вот, что PHP бросает на меня, когда MySQL находится под большой нагрузкой:
Невозможно подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock' (11 "Ресурс временно недоступен" )
Это происходит случайно при загрузке - но чем больше я нажимаю, тем чаще php бросает это на меня. Хотя это происходит, я всегда могу подключаться локально через консоль и от PHP до 127.0.0.1 вместо "localhost", который использует более быстрый сокет unix.
Здесь несколько системных переменных устраняют обычные проблемы:
cat /proc/sys/fs/file-max = 4895952
lsof | wc -l = 215778 (during "outages")
Максимальное использование доступных подключений: 26% (261/1000)
Пул буферов InnoDB/размер данных: 10.0G/3.7G (много места)
- soft nofile 999999
- hard nofile 999999
Я фактически запускаю MariaDB (версия сервера: 10.0.17-MariaDB MariaDB Server)
Эти результаты генерируются как при нормальной нагрузке, так и при запуске mysqlslap в нерабочее время, поэтому медленные запросы не являются проблемой - просто высокие соединения.
Любые советы? Я могу сообщить дополнительные настройки/данные, если необходимо - mysqltuner.pl говорит, что все в порядке
и снова, здесь раскрывается то, что соединение через IP работает очень хорошо и быстро во время этих отключений - я просто не могу понять, почему.
Изменить: вот мой my.ini(некоторые значения могут показаться немного высокими из моих недавних изменений в устранении неполадок и, пожалуйста, имейте в виду, что ошибок в журналах MySQL, системных журналах или dmesg нет)
socket=/var/lib/mysql/mysql.sock
skip-external-locking
skip-name-resolve
table_open_cache=8092
thread_cache_size=16
back_log=3000
max_connect_errors=10000
interactive_timeout=3600
wait_timeout=600
max_connections=1000
max_allowed_packet=16M
tmp_table_size=64M
max_heap_table_size=64M
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=8M
join_buffer_size=1M
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_buffer_pool_size=10G
[mysql.server]
user=mysql
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open-files-limit=65535