У нас есть сервер на базе Windows Server 2003, совместно использующий папку через гигабитный интерфейс, который каждый час получает файл размером 10 ГБ с другого сервера. Этот сервер представляет собой Dell PowerEdge 830 с двумя дисками SCSI на RAID-1 с адаптером PERC4 / SC. Передача происходит почти через 10 минут, и в течение периода передачи сервер становится непригодным для использования. Мы даже не можем открыть Windows Explorer, Диспетчер задач или получить доступ к серверу через VNC. Нам нужен совет о том, в чем проблема, или о том, как отслеживать дальше, чтобы найти проблему.
Это почти наверняка связано с раздутием буфера записи на сервере, поскольку входящая передача превышает скорость записи дисковой подсистемы - см. Статью Марка Руссиновича о поведении сетевого копирования в различных версиях Windows. Вот.
Одна из самых больших проблем с реализацией механизма заключается в том, что для копий, содержащих большое количество данных, поток с отложенной записью Cache Manager в целевой системе часто не успевает за скоростью, с которой данные записываются и кэшируются в памяти. Это заставляет данные заполнять память, возможно, вынуждая другой полезный код и данные, и, в конечном итоге, память целевой системы становится туннелем, через который все скопированные данные проходят со скоростью, ограниченной диском.
Движок, о котором он здесь говорит, взят из Windows XP (и W2K3).
Как только буферизация превысит общий объем свободной физической ОЗУ в системе, вы увидите физическую подкачку в дополнение к записям, связанным с копией, и у вас также есть все стандартные операции ввода-вывода Windows, которые все еще пытаются продолжить. Как только вы пытаетесь инициировать новый процесс, который запускает дальнейшее разбиение по страницам - снова все замедляется.
У вас может быть проблема с вашими дисками, но даже в идеальных условиях маловероятно, что конфигурация RAID 1 на этом сервере могла бы поддерживать поток записи 10 ГБ намного быстрее, чем примерно 40-50 МБ / с, в то время как ваша ссылка GigE почти наверняка превысит это (и может легко может быть вдвое больше, если не чуть больше).
Ваши варианты:
Это звучит очень знакомо - я боролся с подобной проблемой. Посмотрите эти две темы:
При копировании большого файла на удаленный сервер ему не хватает физической памяти
Windows Server 2008 x64, передача больших файлов и использование памяти