Есть учебная программа, которая генерит запросы на сервер ( написана на C++). Сервер - apache2, ОС Ubuntu Server. Хочу добиться скорости 128 Кбит/с, передаю порциями по 400 байт, следовательно, в секунду делаю по 40 запросов. Каждый запрос - отдельный поток. На apache замеряю скорость, на которой все передается ( шлю файл), но она получается меньше раза в полтора, чем должна быть. Все это тестирую на loopback интерфейсе, так что вряд ли задержки сети. Не подскажите куда смотреть? Может, как правильно настроить apache, в этом деле не особо силен. Спасибо.
1. У apache есть несколько разновидностей обработчиков - основное различие пул потоков, пул процессов. Поток несколько быстрее процесса, но и процесс дает большую изоляцию (т.е. безопасность).
2. У apache в настройках указывается стартовое количество процессов (потоков) в пуле и максимальное количество процессов (потоков), ну и шаг приращения. Если, скажем у пуле указано 20, а одновременно пришло 21 запрос, то apache затратит определенное время на запуск процесса (потока).
3. И один запрос в 100 байт способен "уложить" apache.
4. Apache файл будет получать в одном потоке если только вы специально не написали обработчик на стороне apache. Никакой параллельности здесь нет. Мутноватая постановка задачи, ее решение и способы измерения. Для apache есть штатный тест ab.