Проблема при работе с std::queue.
От: .erax  
Дата: 09.11.04 11:09
Оценка:
Пишу сервер, все входящие сообщения храню в контейнере std::queue, т.к. работают с одной очередью много потоков,- реализована внешняя синхронизация. Во время тестирования системы, на DDOS (поводилось под ОС Win 2000 Profesional build 5.00.2195 SP3 RAM 512 MB AMD Athlon 2.5 Barton SL-FRN2). Загрузка процессора 100% при этом время ядра 90-95%, в TaskManager-е, заметил, что происходит 10 — 40 тысяч ошибочных обращений к памяти в секунду. Возможная причина: приняв пакет с данными от клиента сервер запоминает его в пямяти, причем страница памяти перегрузается в файл подкачки и помечается как не доступная, далее при обращении к ней генерируется прерывание и ядро системы загрузает её в ОП из свопа.
Вопрос: есть ли способ запретить сохранение страниц в память. Ну а если мой диагноз неверен, буду рад услышать Вашы рассуждения. Заранее благодарен.

P.S. При отключении сохранения пакетов в очередь, т.е. получаю и игнорирую его. Используя подключение типа LOOP_BACK скорость получения данных была в районе 200 MB в секунду время ядра 5-10%.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.