Немного предыстории:
У нас есть служба Windows, которая получает данные с внешнего сервера и сохраняет их в локальной БД (SQL server 2012).
Внешний сервер отправляет более 1500 «сообщений» в секунду, но наша скорость хранения составляет почти 500 сообщений / с для локального сервера (служба Windows и база данных находятся на одной виртуальной машине с Xeon E5520 и 16 ГБ ОЗУ на HP G7. Сервер / Windows Server 2012).
Когда я перемещаю службу и БД на свой локальный компьютер, скорость хранения повышается до 1100 msg / s.
Я провел тест на нескольких ПК (core2 duo и core i5) и серверах (HP G7 и G8, виртуальные машины и физические серверы), результат был одинаковым: все ПК получают сообщения с большей скоростью, чем наши серверы.
Мы думали, что это может быть проблема с сетью, но это не так.
Я провел тест «Пропускная способность транзакций памяти» с «Sisoft Sandra» на серверах и ПК и выяснил, что наши ПК работают намного лучше, чем серверы. в минимум Результат на ПК составил 5.4MTPS (на core2 duo E7400), максимум результат сервера составил 3MTPS (на HP Proliant DL380P с Xeon E5-2650).
Я склонен заключать, что с процессорами Xeon что-то не так, но это было бы странным выводом, поскольку во всем мире существуют десятки серверов Xeon DB.
Я что-то упускаю? Есть ли в BIOS специальная конфигурация для решения этой проблемы?
Поскольку это приложение для обмена сообщениями, и вы используете серверы HP ProLiant, я бы рассматривал это как конфигурацию с низкой задержкой ... Если это легко воспроизводимый тест, можете ли вы попробовать следующее?
Посмотрите на некоторые из рекомендации по настройке мы используем для приложений с большим количеством сообщений.