Недавно тут озаботился написанием tcp-сервера. Эксперименты решил начать с простого эхо-сервера. Да и в примерах iolib'ов он был. Ну, значит, запустил я его и решил испытать на стрессовые нагрузки. Для этого я использовал тулзу jmeter. Так вот, что выяснилось. При даже 100 параллельных запросах не все доходит правильно до клиента. И где-то 2% теряется (на моей машине). Вариант эхо-сервера, написанного на C, который я взял в том же iolib - на 100 обходится без ошибок. Правда на 1000 уже где-то 1% появляется. Вариант с использованием IOLIB - 10%. И вот меня тут смутило немного - а правильно ли я вообще понимаю всё? И неужели простому эхо-серверу так сильно становится плохо? Быстро накиданный вариант на java, который выделяет отдельные потоки на клиента - вообще 97% ошибок показал. С java.nio (асинхронная модель) не пробовал, потому как к этому времени уже изрядно расстроился.
Комментариев нет:
Отправить комментарий