denisimus77
Новичок
Плавающая ошибка error #2013: Lost connection to MySQL server
Есть два сервака в сетке 150 мбит
1)CentOS 5.0, PHP Version 5.2.9, Mysql Client API version 5.1.34; 4 * Intel Xeon CPU 3.2GHz; 8Gb оперативы
2)CentOS 5.0, MySQL 5.0.45; 4 * Intel Xeon CPU 3.06GHz; 8Gb оперативы
Эти два сервака работают в связке, все обращения к MySql второго сервака идут только с первого.
При всем при этом LA на мускульном серваке не большой от 1 до 3, CPU используется даже не на 50%, память свободная имеется.
Сервак с которого идут запросы, на котором PHP, загружен сильно, LA в среднем наверно в районе 10-20, пики 50, основной ресурс которого не хватает это проц. (над этим работаем ведется оптимизация)
Это стата за 19 дней работы, что бы было понятно на сколько нагружен Mysql
(с max_connections = 512 в конфиге, сейчас уже стоит max_connections = 1024)
Соединения ø в час %
Максимально одновременных 513 --- ---
Неудачных попыток 8,566 18.69 0.14%
Прерваны 2,866 6.25 0.05%
Всего 5,947 k 12.98 k 100.00%
Имеют место такие ошибки, они появляются как-то случайно можно перезагружать страницу одну и туже по многу раз и ошибка редко, но появляется, таким образом ошибки проявляются на любой странице.
Я так понимаю этих ошибок по стате за 19 дней набежало 8,5К
error #2013: Lost connection to MySQL server at 'reading authorization packet', system error: 0 или
error #2013: Lost connection to MySQL server at 'reading final connect information', system error: 0
По логам видно, что обрывы случаются когда коннект не происходит в основном в течение 10 сек,
но бывает что обрыв случается при задержках от 5 до 9 сек и от 11 до 15, но реже.
Что бы было понятнее код для коннекта и фиксирования времени такой примерно:
$querytime_before = array_sum(explode(' ', microtime()));
$conn = mysql_connect($CONN['_HOST'], $CONN['_USER'], $CONN['_PASSWORD']);
if (!$conn) {
$querytime_after = array_sum(explode(' ', microtime()));
$query_time = $querytime_after - $querytime_before;
return check_mysql_error($conn, 'Cannot connect to the database '.$query_time);
}
В мускуле
max_connections = 1024
connect_timeout = 5
max_allowed_packet = 5M
wait_timeout = 28800
interactive_timeout = 28800
В пхп
mysql.connect_timeout = 60
Вопросы такие:
В какой лимит может упираться система при такой ошибке?
По сути это должен быть connect_timeout=5, но почему тогда есть 10 секундные задержки?
Почему же соединение не происходит так долго в чем проблема может быть и как с этим справиться?
Спасибо )
Есть два сервака в сетке 150 мбит
1)CentOS 5.0, PHP Version 5.2.9, Mysql Client API version 5.1.34; 4 * Intel Xeon CPU 3.2GHz; 8Gb оперативы
2)CentOS 5.0, MySQL 5.0.45; 4 * Intel Xeon CPU 3.06GHz; 8Gb оперативы
Эти два сервака работают в связке, все обращения к MySql второго сервака идут только с первого.
При всем при этом LA на мускульном серваке не большой от 1 до 3, CPU используется даже не на 50%, память свободная имеется.
Сервак с которого идут запросы, на котором PHP, загружен сильно, LA в среднем наверно в районе 10-20, пики 50, основной ресурс которого не хватает это проц. (над этим работаем ведется оптимизация)
Это стата за 19 дней работы, что бы было понятно на сколько нагружен Mysql
(с max_connections = 512 в конфиге, сейчас уже стоит max_connections = 1024)
Соединения ø в час %
Максимально одновременных 513 --- ---
Неудачных попыток 8,566 18.69 0.14%
Прерваны 2,866 6.25 0.05%
Всего 5,947 k 12.98 k 100.00%
Имеют место такие ошибки, они появляются как-то случайно можно перезагружать страницу одну и туже по многу раз и ошибка редко, но появляется, таким образом ошибки проявляются на любой странице.
Я так понимаю этих ошибок по стате за 19 дней набежало 8,5К
error #2013: Lost connection to MySQL server at 'reading authorization packet', system error: 0 или
error #2013: Lost connection to MySQL server at 'reading final connect information', system error: 0
По логам видно, что обрывы случаются когда коннект не происходит в основном в течение 10 сек,
но бывает что обрыв случается при задержках от 5 до 9 сек и от 11 до 15, но реже.
Что бы было понятнее код для коннекта и фиксирования времени такой примерно:
$querytime_before = array_sum(explode(' ', microtime()));
$conn = mysql_connect($CONN['_HOST'], $CONN['_USER'], $CONN['_PASSWORD']);
if (!$conn) {
$querytime_after = array_sum(explode(' ', microtime()));
$query_time = $querytime_after - $querytime_before;
return check_mysql_error($conn, 'Cannot connect to the database '.$query_time);
}
В мускуле
max_connections = 1024
connect_timeout = 5
max_allowed_packet = 5M
wait_timeout = 28800
interactive_timeout = 28800
В пхп
mysql.connect_timeout = 60
Вопросы такие:
В какой лимит может упираться система при такой ошибке?
По сути это должен быть connect_timeout=5, но почему тогда есть 10 секундные задержки?
Почему же соединение не происходит так долго в чем проблема может быть и как с этим справиться?
Спасибо )