![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| Poldan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 13.5.2010 Репутация: нет Всего: нет |
Народ, не подскажите как бороться с "Resource temporarily unavailable" при записи в неблокирующий сокет с помощью функции syswrite?
Да, чаще они возникают когда нагрузка возрастает, но сервер мощный - брендовый. Конструкция вроде
не помогает - при возрастании нагрузки сервер просто впадает в ступор. Какие параметры можно покрутить в perl'е или самой ОС, для того чтобы повысить производительность сокета и минимизировать количество ошибок? (FreeBSD 7.2) Очень прошу помощи... |
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: нет Всего: 17 |
Потому что у ОС кончается буфер для записи, и вы используете неблокирующий режим (в блокирующем - поток был бы остановлен до возможности полностью записать данные). И бороться с этим увеличением буферов - не надо. Раз возникает такая ошибка, то до этого вы перевели сокет в неблокирующий режим. Если это сделано не просто так, а вы где-то уже используете select/poll/kq/enyevent/ev/poe для проверки доступности сокета "на чтение" - используйте этот же самый механизм для проверки доступности "на запись". syswrite вернёт, сколько байт он записал в сокет - отбрасывайте их и, при следующей возможности, пробуйте дописать оставшееся.
|
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 2 Всего: 39 |
sleep(0.005) насколько я понимаю эквивалентно sleep(0)
|
|||
|
||||
| Poldan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 13.5.2010 Репутация: нет Всего: нет |
Похоже Вы правы и подверждаете мои, пока хрупкие, мысли по этому поводу. Что-то такое встречал и в гугле ). Будем копать в этом направлении. Спасибо. |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |