[trn]mozh kto znaet, gde poryt' pri takoi probleme: pri bol'shoi nagruzke na solyarkovyi server s zhaboi idet chto-to tipa perepolneniya bufera soketa i novye konnekty refyused. V kakuyu storonu smotret' - na sistemy ili na zhabu? K-vo fd vrode bol'shoe (> 65000, no mozhet nado bol'she),
vremya taim-auta sokrasheno s 4 min do 1 (mozhet nado eshe men'she?). V logah nichego kriminal'nogo ne vidat'... vrode...
Nikakih vnyatnyh sovetov v gugle ne nashla, hotya problema eta izvestnaya. [/trn]
socket overflow on Solaris10 x86
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Житель
- Сообщения: 876
- Зарегистрирован: 19 июл 2004, 23:36
- Откуда: Ванкувер
- Проф. Преображенский
- Графоман
- Сообщения: 20276
- Зарегистрирован: 08 ноя 2006, 11:10
- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
Выскажу предположение. Существует ограничение на количество фд открытых одним процессом. Если оно превышается, то серверный процесс будет отказывать в приеме нового соединения. Такое бывает если по окончанию работу с клиентом вызывать close(sock) beside shutdown(sock, READWRITE); То есть первое чтобы я поглядел не копяться ли открытые фал дескрипторы на серверном процессе - обычно ето выглядит как куча сокетов в положении тайм-вайт принадлежаших серверному процессу. Впрочем в яве ен силет и где там ручку крутить подсказать не могу. Удачи
-
- Житель
- Сообщения: 876
- Зарегистрирован: 19 июл 2004, 23:36
- Откуда: Ванкувер
-
- Житель
- Сообщения: 876
- Зарегистрирован: 19 июл 2004, 23:36
- Откуда: Ванкувер
- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
Уменьшение тайм-аута как и его полное отключение опцией solinger не помогут - речь тут идет либо о неправильно сделанном протоколе либо об некорректности в программе. Сокеты в тайм-ауте копяться? У серверного процесса? - Попробуйте чтобы клиент закрывал соединение а не серве. То есть выдавайте сокет клиенту и закрывайте его либо по тайм-ауту (типа keep alive) либо когда клиент сигналит о закрытие. Дело в том что в тайм вайт впадает сокет выполнивший активное закрытие - то кто посылает первый fin. Точнее (я по крайне мере) сказать затрудняюсь без исследований под etherealom (самое простое мне кажется и самое правильное) попробуйте спросить тут akjm могет он скажет больше моего.
Ну и в конце статью, я так понимаю не для тебя а для кого там у вас отвечает не за базы данных:)
http://netarchlab.tsinghua.edu.cn/ftp/p ... 11B_04.PDF
ну вот чем могу
Ну и в конце статью, я так понимаю не для тебя а для кого там у вас отвечает не за базы данных:)
http://netarchlab.tsinghua.edu.cn/ftp/p ... 11B_04.PDF
ну вот чем могу