evpu
31-01-2019, 17:35
Добрый день!
Извините товарищи, нудно пишу.
Победил предыдущую проблему, перенес клиентское приложение на другой сервер. Среда Debian 8.7 где Mysql, и он же где софт.
Софт (приложение на С) соединяется с сервером через libmysqlclient.
Пока они висели на одном локалхосте, (127.0.0.1) а так же я пробовал внешний адрес (вида 192.168.. в пределах одной машины)
все работало отлично, за исключением того что жрало ресурсы, отъедая их у mysql, в этой связи и тормозило.
Перенес софт на другой сервак, отдал mysql целый Xeon и базу на NVM-томе.
Соединил сервера прямым пачкордом через гигабитный интерфейс.
Тормозить перестало, но стали проскальзывать ошибки соединения. Иногда. Из миллиона, 1-2 (замерил).
lost connection to mysql server at 'reading authorization packet' system error 104
lost connection to mysql server at 'reading authorization packet' system error 0
mysql error can't connect to mysql server on '192.168.1.1' (99)
наблюдаю пока недолго, есть подозрение что связано таки с пиковыми нагрузками.
Серверный параметр connect_timeout == 10(повышен давно). В логах mysql этих ошибок нет. (типа aborted connections).. может не там смотрю?
Хочу в коде для начала применить опцию
mysql_options()
MYSQL_OPT_CONNECT_TIMEOUT, это уже на клиентской стороне, повысить его, посмотреть что получится. Секунд до 10.
ПРОШУ СОВЕТА ПО ВСЕМУ НАПИСАННОМУ.
И, по поводу самой команды, нагуглил несколько вариантов ее начертания, везде идет как рабочий пример:
unsigned int conn_timeout=10;
1.
mysql_options(&mysql, MYSQL_OPT_CONNECT_TIMEOUT, &conn_timeout);
2.
mysql_options(&mysql, MYSQL_OPT_CONNECT_TIMEOUT, "10");
3.
mysql_options(connection, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&conn_timeout);
Нихрена не пойму.. какой правильный???
В прототипе написано что тип аргумента, "unsigned int *".
Извините товарищи, нудно пишу.
Победил предыдущую проблему, перенес клиентское приложение на другой сервер. Среда Debian 8.7 где Mysql, и он же где софт.
Софт (приложение на С) соединяется с сервером через libmysqlclient.
Пока они висели на одном локалхосте, (127.0.0.1) а так же я пробовал внешний адрес (вида 192.168.. в пределах одной машины)
все работало отлично, за исключением того что жрало ресурсы, отъедая их у mysql, в этой связи и тормозило.
Перенес софт на другой сервак, отдал mysql целый Xeon и базу на NVM-томе.
Соединил сервера прямым пачкордом через гигабитный интерфейс.
Тормозить перестало, но стали проскальзывать ошибки соединения. Иногда. Из миллиона, 1-2 (замерил).
lost connection to mysql server at 'reading authorization packet' system error 104
lost connection to mysql server at 'reading authorization packet' system error 0
mysql error can't connect to mysql server on '192.168.1.1' (99)
наблюдаю пока недолго, есть подозрение что связано таки с пиковыми нагрузками.
Серверный параметр connect_timeout == 10(повышен давно). В логах mysql этих ошибок нет. (типа aborted connections).. может не там смотрю?
Хочу в коде для начала применить опцию
mysql_options()
MYSQL_OPT_CONNECT_TIMEOUT, это уже на клиентской стороне, повысить его, посмотреть что получится. Секунд до 10.
ПРОШУ СОВЕТА ПО ВСЕМУ НАПИСАННОМУ.
И, по поводу самой команды, нагуглил несколько вариантов ее начертания, везде идет как рабочий пример:
unsigned int conn_timeout=10;
1.
mysql_options(&mysql, MYSQL_OPT_CONNECT_TIMEOUT, &conn_timeout);
2.
mysql_options(&mysql, MYSQL_OPT_CONNECT_TIMEOUT, "10");
3.
mysql_options(connection, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&conn_timeout);
Нихрена не пойму.. какой правильный???
В прототипе написано что тип аргумента, "unsigned int *".