SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.12.2015 22:26:18

velik505
Участник
Зарегистрирован: 09.12.2015
Сообщений: 5

Большое количество соединений с mysql. Can't connect to MySQL server on '192.168.1.1' (99) как отстр

Вечер добрый у нас есть высоконагружаемый проект
Который разнесён по 2 серверам.
1ый сервер (centos 6): 8 core 3400MHZ. 32 gig memory.

На 1ом сервере находиться php скрипты сайта, css, js и тд.
Сборка: PHP 5.3.3 (cli) (built: Jul 9 2015 17:39:00)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with XCache v3.2.0, Copyright (c) 2005-2014, by mOo
with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo

nginx version: nginx/1.8.0

php собран как php-fpm.

2ой сервер (debian 7): 12 core 3800MHZ. 64 gig memory.
На 2ом сервере мы используем mysql 5.5.46

Оба сервера стоят на 1 свиче и соеденины между собой в одну сеть.

С 1ого сервера мы подключаемся к mysql по внутреннему ip: 192.168.1.1
конектимся к БД через mysql_connect

Скрипт-движок сайта устроен так что сверху мы открываем соединение require_once './config.php';
снизу закрываем mysql_close($con);

У нас проблема в том из за большого количества соединений изредка особенно при онлайне свыше 4000 человек бывает выдаёт:
Can't connect to MySQL server on '192.168.1.1' (99)
В период онлайна на сайте 4000-5500 человек нагрузки на оба сервера нет:
http://nice-bux.ru/prisp.jpg
В данный момент возможно нашу проблему бы решил переход на постоянные соединения mysql_pconnect(),
но мы не можем конектиться к базе данных mysql с помощью mysql_pconnect(), так как у нас php собран как php-fpm и не являеться модулем apache.

Все тяжелые запросы которые долго выполнялись отследили с помощью long_query_time и оптимизировали!
В данный момент база данных mysql принимает: ~ 4 000 запросов в секунду. В сутки ~ 360 000 000 запросов.

root@mysql ~ # hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 1418 MB in 3.00 seconds = 472.50 MB/sec
Конечно не ссд, но результат очень хороший, скорость очень близка к ссд.

В данном случае так как у нас происходит большое количество соединений с mysql то нам нужно отстроить очередь на соединения с mysql? Но увеличение back_log не помогает.
Как нам отстроить очередь на соединение с mysql базой чтобы не соединения не отваваливались и не выдавали Can't connect to MySQL server on '192.168.1.1' (99), а ждали своей очереди?

Все настройки mysql http://nice-bux.ru/txt.txt

Неактивен

 

#2 09.12.2015 22:45:40

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Большое количество соединений с mysql. Can't connect to MySQL server on '192.168.1.1' (99) как отстр

Проблема скорее всего в том, что временно заняты все клиентские порты.
Варианты решения:
1. Расширить диапазон киентских портов
sysctl -w net.ipv4.ip_local_port_range="1024 65535"
1а. Добавить слушаемых портов серверу и чередовать их на клиенте. Уникальной должна быть комбинация (клиентский порт, серверный порт)
2. Сделать, чтобы порты закрывались сразу по завершению, а не ждали таймаут
Записать 1 в /proc/sys/net/ipv4/tcp_tw_reuse

См. подробнее здесь:
https://www.percona.com/blog/2014/12/08 … -to-mysql/

Неактивен

 

#3 09.12.2015 23:44:07

velik505
Участник
Зарегистрирован: 09.12.2015
Сообщений: 5

Re: Большое количество соединений с mysql. Can't connect to MySQL server on '192.168.1.1' (99) как отстр

rgbeast написал:

Проблема скорее всего в том, что временно заняты все клиентские порты.
Варианты решения:
1. Расширить диапазон киентских портов
sysctl -w net.ipv4.ip_local_port_range="1024 65535"
1а. Добавить слушаемых портов серверу и чередовать их на клиенте. Уникальной должна быть комбинация (клиентский порт, серверный порт)

Вечер добрый уважаемый. Спасибо что откликнулись
port range выдаёт:
root@mysql ~ # sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 1024     65535
в
/proc/sys/net/ipv4/tcp_tw_reuse
0
net.ipv4.ip_local_port_range = 1024     65535

Всё верно? или 0 надо удалить?
Как мне сделать чтобы порты закрывались сразу по завершению а не ждали таймаут?

Отредактированно velik505 (10.12.2015 00:19:42)

Неактивен

 

#4 10.12.2015 00:40:37

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Большое количество соединений с mysql. Can't connect to MySQL server on '192.168.1.1' (99) как отстр

echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse


Не забудьте также, что если клиентских портов не хватит, можно сделать чтобы сервер слушал порты 3306, 3307, 3308 и.т.д. и чередовать в клиенте (можно выбирать случайно).

Неактивен

 

#5 10.12.2015 16:02:34

velik505
Участник
Зарегистрирован: 09.12.2015
Сообщений: 5

Re: Большое количество соединений с mysql. Can't connect to MySQL server on '192.168.1.1' (99) как отстр

rgbeast написал:

echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse


Не забудьте также, что если клиентских портов не хватит, можно сделать чтобы сервер слушал порты 3306, 3307, 3308 и.т.д. и чередовать в клиенте (можно выбирать случайно).

Уважаемый добрый вечер. Предоставляю более подробную информацию в момент ошибки mysql (99). Уделите 5 минуточек.

/proc/sys/net/ipv4/tcp_tw_reuse
1
root@mysql ~ # sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 1024 65535

В момент 4400 онлайна ошибка 99 выскакивает периодически вот что происходит в этот момент:

root@mysql ~ # lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 10388 mysql 12u IPv4 84699953 0t0 TCP 192.168.1.1:mysql (LISTEN)

root@mysql ~ # netstat -ltupn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.1.1:3306 0.0.0.0:* LISTEN 10388/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1423/apache2
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 9327/sshd
tcp6 0 0 :::4949 :::* LISTEN 13930/munin-node
tcp6 0 0 :::22 :::* LISTEN 9327/sshd
udp 0 0 192.168.1.1:123 0.0.0.0:* 3848/ntpd
udp 0 0 xxx.xxx.xxx.xx:123 0.0.0.0:* 3848/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 3848/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 3848/ntpd
udp6 0 0 fe80::7e05:7ff:fe0d:123 :::* 3848/ntpd
udp6 0 0 fe80::6a05:caff:fe1:123 :::* 3848/ntpd
udp6 0 0 ::1:123 :::* 3848/ntpd
udp6 0 0 :::123 :::* 3848/ntpd

где xxx.xxx.xxx.xx - айпи мускуль сервака.


а на 1ой где морда в этот момент:
[root@morda ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1981/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1981/dovecot
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1953/mysqld
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 2002/exim
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1981/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1981/dovecot
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 26951/nginx
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 2002/exim
tcp 0 0 xxx.xxx.xxx.xx:53 0.0.0.0:* LISTEN 1573/named
tcp 0 0 192.168.1.2:53 0.0.0.0:* LISTEN 1573/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1573/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1727/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2002/exim
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1573/named
tcp 0 0 xxx.xxx.xxx.xx:443 0.0.0.0:* LISTEN 26951/nginx
tcp 0 0 xxx.xxx.xxx.xx:1500 0.0.0.0:* LISTEN 2058/ihttpd

де xxx.xxx.xxx.xx - айпи морды сервака.


root@mysql ~ # netstat -n | wc -l
241

[root@morda ~]# netstat -n | wc -l
58206

Вот при 4600 онлайна:
mysql сервак:
root@mysql ~ # netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.1.1:3306 192.168.1.2:2739 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:21331 TIME_WAIT
tcp 0 0 xxx.xxx.xxx.xx:22 91.224.140.115:57111 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:54701 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:46576 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:17059 TIME_WAIT
tcp 0 0 xxx.xxx.xxx.xx:22 171.33.249.119:59736 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:34332 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:15554 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:30639 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59464 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:58341 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:36693 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:61337 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:11982 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:31654 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:18513 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:2202 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54167 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:41466 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:27672 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54056 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:4587 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54420 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:55020 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:38492 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:45090 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59688 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:29321 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:14596 TIME_WAIT
tcp 0 11 192.168.1.1:3306 192.168.1.2:31657 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:45869 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:63767 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:53951 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:2515 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59300 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:60293 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:61982 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:17381 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:28683 TIME_WAIT
tcp 0 11 192.168.1.1:3306 192.168.1.2:31656 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:37844 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:2483 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:61261 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:43160 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:56813 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:29528 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:31249 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59543 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:2123 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:30131 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:17020 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:55841 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:4003 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:62555 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54883 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:6764 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:3990 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:40796 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:18557 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:16981 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:14746 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:42982 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:29770 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59066 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:18691 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:36402 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:61115 TIME_WAIT
tcp 0 7632 xxx.xxx.xxx.xx:22 171.33.249.119:59735 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:22689 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:10886 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:60331 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:6838 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:40581 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:34623 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:1973 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:26536 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:47136 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:60483 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:35385 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:6707 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:2353 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:60252 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:30543 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:6870 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:22765 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:46350 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:58593 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:28126 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:33489 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:3202 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:48014 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:42797 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:57147 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:31662 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:3555 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:26436 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:56722 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:55680 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:42795 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:11969 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59273 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:44309 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59366 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:44679 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:41922 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:15223 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:12200 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:55196 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:41776 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54160 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:31659 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:41568 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:28628 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:64438 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:4400 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:55846 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54350 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:53865 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59679 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:28851 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:46257 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:27293 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:1899 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:29866 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:2093 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:15159 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:61963 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:43911 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:36419 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:55132 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:3835 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:60817 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:36438 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:1844 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:38009 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:45295 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:22579 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:1743 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:27263 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:22692 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:57571 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:44865 TIME_WAIT
tcp 0 657 192.168.1.1:3306 192.168.1.2:31661 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:62440 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:15516 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:30743 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:22672 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54398 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:45325 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:31332 TIME_WAIT
tcp 0 9 192.168.1.1:3306 192.168.1.2:31663 ESTABLISHED
tcp 0 0 192.168.1.1:3306 192.168.1.2:59954 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:60622 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:45042 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:61641 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:14831 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:2807 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:17096 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:30493 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:26576 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:41590 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:14609 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54287 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:58751 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:17297 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:28291 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:21570 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:42902 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:22146 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:14715 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:40126 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:18528 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:37111 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:15213 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:33417 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:56410 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:30294 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:64073 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:44873 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:30714 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:35204 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54319 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:42657 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:44550 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:57218 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:46909 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:38227 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59346 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:18543 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:18555 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:58197 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:22780 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:22869 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:18699 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:34798 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:15400 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:58889 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:54396 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:27436 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:60837 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:21132 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:46146 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:28317 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:37162 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:34773 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:4202 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:63692 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:27237 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:4431 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:34517 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:45426 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:59293 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:63825 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:43441 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:18534 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:14583 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:3533 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:35363 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:36408 TIME_WAIT
tcp 0 0 192.168.1.1:3306 192.168.1.2:41915 TIME_WAIT
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 8 [ ] DGRAM 3953 /dev/log
unix 2 [ ] DGRAM 103907064
unix 2 [ ] DGRAM 84699947
unix 2 [ ] DGRAM 18655369
unix 2 [ ] DGRAM 14372
unix 2 [ ] DGRAM 12492
unix 2 [ ] DGRAM 3971
unix 3 [ ] DGRAM 7642
unix 3 [ ] DGRAM 7641


Ну и на морде:
root@morda~ # netstat -n
tcp 0 0 192.168.1.2:56159 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:2404 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:40504 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:26517 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:59469 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:9037 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:23252 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:37947 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:2162 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:3680 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:41499 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:50062 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:12710 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:36603 192.168.1.1:3306 TIME _WAIT
tcp 0 0 xxx.xxx.xxx.xx:80 31.24.91.188:54553 ESTA BLISHED
tcp 0 0 192.168.1.2:47591 192.168.1.1:3306 TIME _WAIT
tcp 0 0 xxx.xxx.xxx.xx:80 95.53.131.48:18286 ESTA BLISHED
tcp 0 0 192.168.1.2:50991 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:46758 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:27425 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:24034 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:49543 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:47600 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:19787 192.168.1.1:3306 TIME _WAIT
tcp 0 1 xxx.xxx.xxx.xx:80 217.12.118.67:36498 FIN_ WAIT1
tcp 0 0 192.168.1.2:11477 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:58249 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:53643 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:33144 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:27904 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:9242 192.168.1.1:3306 TIME _WAIT
tcp 0 1 xxx.xxx.xxx.xx:80 176.97.36.118:50684 FIN_ WAIT1
tcp 0 0 192.168.1.2:21723 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:11346 192.168.1.1:3306 TIME _WAIT
tcp 0 1 xxx.xxx.xxx.xx:80 109.162.38.178:56706 FIN_ WAIT1
tcp 0 0 192.168.1.2:2913 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:43461 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:31046 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:21797 192.168.1.1:3306 TIME _WAIT
tcp 0 0 192.168.1.2:25831 192.168.1.1:3306 TIME _WAIT
tcp 0 1 xxx.xxx.xxx.xx:80 46.158.121.42:2873 FIN_ WAIT1
......
......
.....
и тд и тп.
Какие у нас есть варианты? вариант с рандомом портов не поканает?

Самое интересное что одном серваке когда был проект и по localhost всё норм было на такое кол-во соединений. Как только разнесли на 2 сервака понеслась эта проблема. Это потому что  в сокет ходили локальный?

Сейчас у нас кончаются порты для исходящих коннектов на морде? Как нам решить проблему?

Отредактированно velik505 (10.12.2015 16:04:25)

Неактивен

 

#6 10.12.2015 17:24:39

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Большое количество соединений с mysql. Can't connect to MySQL server on '192.168.1.1' (99) как отстр

Очень хочется, чтобы Вы проверили, что tw_reuse установлен на машинке-отправителе, и что у Вас расширен диапазон исходящих адресов (так же, на машинке-отправителе). Очень интересно, как ведет себя сетевой стек при ошибках (можно посмотреть количество в ss -s). Если reuse не помогает, можно ставить более агресивные настройки закрытия соединения — tw_recycle и обязательно tcp_timestamps с обеих сторон (он нужен для recycle). После этого я бы покрутил syn_backlog и память для соединений. Ну и времена.

Суммарно — как-то так:
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_wmem = 4096 65536 524288
net.ipv4.tcp_rmem = 4096 87380 524288
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.core.somaxconn = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_max_syn_backlog = 8192

Описание параметров — например, вот тут: https://www.frozentux.net/ipsysctl-tuto … ables.html

Неактивен

 

#7 10.12.2015 20:36:46

velik505
Участник
Зарегистрирован: 09.12.2015
Сообщений: 5

Re: Большое количество соединений с mysql. Can't connect to MySQL server on '192.168.1.1' (99) как отстр

(сервак морды сайта) [root@morda~]# ss -s
Total: 6896 (kernel 6926)
TCP:   76587 (estab 6479, closed 65154, orphaned 4930, synrecv 0, timewait 65153/0), ports 64428

Transport Total     IP        IPv6
*         6926      -         -
RAW       3         3         0
UDP       4         4         0
TCP       11433     11426     7
INET      11440     11433     7
FRAG      0         0         0

(сервак мускула) root@mysql ~ # ss -s
Total: 87 (kernel 548)
TCP:   215 (estab 9, closed 200, orphaned 0, synrecv 0, timewait 200/0), ports 4

Transport Total     IP        IPv6
*         548       -         -
RAW       1         1         0
UDP       9         5         4
TCP       15        13        2
INET      25        19        6
FRAG      0         0         0

(сервак мускула) root@mysql ~ # lsof -i :3306
COMMAND   PID  USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
mysqld  10388 mysql   12u  IPv4  84699953      0t0  TCP 192.168.1.1:mysql (LISTEN)
mysqld  10388 mysql  180u  IPv4 120380946      0t0  TCP 192.168.1.1:mysql->192.168.1.2:15395 (ESTABLISHED)
mysqld  10388 mysql  297u  IPv4 120378570      0t0  TCP 192.168.1.1:mysql->192.168.1.2:15378 (ESTABLISHED)
mysqld  10388 mysql  301u  IPv4 120380948      0t0  TCP 192.168.1.1:mysql->192.168.1.2:15451 (ESTABLISHED)
mysqld  10388 mysql  305u  IPv4 120376910      0t0  TCP 192.168.1.1:mysql->192.168.1.2:15454 (ESTABLISHED)


(сервак морды) [root@profitcentr ~]# lsof -i :3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  1953 mysql   10u  IPv4  11502      0t0  TCP *:mysql (LISTEN)

(сервак мускула) root@mysql ~ # netstat -n | wc -l
201

(сервак морды) [root@profitcentr ~]# netstat -n | wc -l
58337

net.ipv4.ip_local_port_range = 1024 65535 - на обоих серваках.

/proc/sys/net/ipv4/tcp_tw_reuse - на обоих серваках 1

/proc/sys/net/ipv4/tcp_fin_timeout на обоих серваках 30

/proc/sys/net/ipv4/tcp_max_syn_backlog - 8192 на серваке mysql

/proc/sys/net/ipv4/tcp_max_syn_backlog - 40000 на серваке морды

в my.cnf back_log по умолчанию сейчас стоит (менял до нескольки тысяч ничего не менялось)

/proc/sys/net/ipv4/tcp_timestamps - на обоих серваках 1

/proc/sys/net/ipv4/tcp_tw_recycle - на обоих серваках 1

/proc/sys/net/ipv4/ip_local_port_range - на обоих серверах 1024    65535

/proc/sys/net/core/somaxconn - на сервере mysql 128 а на сервере морды 60000

/proc/sys/net/ipv4/ipfrag_time - на обоих серверах по 30

Отредактированно velik505 (10.12.2015 20:54:05)

Неактивен

 

#8 11.12.2015 01:06:37

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Большое количество соединений с mysql. Can't connect to MySQL server on '192.168.1.1' (99) как отстр

Ну то есть с MySQL проблем нету. Смущает соотношение количества установленных соединений — 9 в MySQL и 6479 на морде. Кажется, у Вас соединения открываются не до MySQL, а куда-то еще — в ss/netstat должно быть видно, куда.

Неактивен

 

#9 11.12.2015 15:12:13

velik505
Участник
Зарегистрирован: 09.12.2015
Сообщений: 5

Re: Большое количество соединений с mysql. Can't connect to MySQL server on '192.168.1.1' (99) как отстр

не хватало портов на серваке морды для исходящих конектов на mysql
построил маршруты в обе стороны.

$randip=mt_rand(0, 1);

if ($randip == 0){

$bd_host = "192.168.1.1";

}else{

$bd_host = "192.168.1.3";

}

Полёт нормальный!!!!smile))

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson