Сервер имеет несколько NICs? У меня были подобные проблемы, когда сервис служб удаленных рабочих столов связывает с неправильным. Если это - случай, см. RDP - разъединенный Удаленный рабочий стол, Ошибка 2 308 закрытых сокетов
Предлагаю делать дампы памяти и анализировать их в WinDdg с помощью Sos. Я исправил некоторые проблемы в нашей продукции, которые я, вероятно, не смог бы диагностировать без WinDbg.
У Тесс Фернандес есть отличный блог, где вы можете узнать, как анализировать дампы памяти.
Обычно это вызвано очисткой больших долгоживущих объектов в GC ( stackoverflow имел эту проблему, см. Ссылку ). Вы храните много коллекций объектов в кэше или в сеансе?
Я также рекомендую вам создать и настроить новый сервер в производстве для тестирования. Если у вас случайное безумие, и вы не знаете, почему, и не можете его воспроизвести, я бы указал на оборудование или конфигурацию, а не на код.
Это виртуальный сервер с общими ресурсами или физический сервер? Если это первое, возможно, вам стоит выделить ресурсы для этого сервера. Удачи ...
Попробуйте использовать кэш-сервер
в качестве внешнего интерфейса, например Apache Traffic Server (ATS)
.
Хотя это не решит проблему, это может помочь идентифицировать это, потому что вы в то же время переместите потенциально опасную нагрузку с бэкэнда (проверив, есть ли проблемы и во внешнем интерфейсе) и уменьшите нагрузку на серверную часть, чтобы было легче увидеть, что не так.
Пытаться угадать неисправность без данных - это бессмысленно. Да, кому-то в stackoverflow или в вашей группе инженеров может повезти, но это просто плохая разработка, и вы не можете определить, сколько времени у вас уйдет на то, чтобы испробовать каждое предположение, и обнаружит ли вы проблему.
100% ЦП немного подозрительно в том смысле, что вряд ли это будет ввод-вывод (при условии, что db - это еще один блок, медленная база данных не должна вызывать 100 % CPU на веб-серверах). Вам нужно присмотреться к дому.