Назад | Перейти на главную страницу

Сервер зависает при копировании файла

У нас проблема с одним из наших серверов. Когда мы копируем файлы большего размера (в этом случае большой означает 50 МБ и больше), операция копирования (с C: \ на C :) запускается нормально, но затем начинает отставать, снижаясь до 100 Кбит / с и заставляя весь сервер зависать (наш приложение больше не может возвращать результаты с SQL Server, поэтому приложение зависает для пользователей).

Intel RST показывает зеленый цвет на SMART. Вот системные характеристики:

Я не эксперт по серверам, поэтому не уверен, правильно ли я все это настроил. В чем может быть проблема?

РЕДАКТИРОВАТЬ: Я не эксперт в этих вещах (разработчик). Так может я что-то делаю неправильно.

РЕДАКТИРОВАТЬ2: http://imgur.com/a/NNgDY Производительность записи на диск очень низкая. Но не все зависает, как при копировании с помощью проводника Windows. Я предполагаю, что висящий проводник заклинивает насос сообщений, забивая систему. Может ли переход на RAID1 / 10 решить проблему, по вашему мнению?

Если я правильно интерпретирую "Cache-Mode: Off", то вполне понятно, что производительность записи - отстой. Проверьте, есть ли копирование / чтение из RAID (в сеть или NUL) это проблема или копирование / запись в RAID - Я думаю, что правильно, только запись в RAID - это боль.

RAID5 является распределенным - каждая полоса состоит из (в вашем случае) трех сегментов: data1, data2 и parity12. Теперь, когда некоторые данные записываются в массив, их нельзя просто записать в сегмент данных, потому что четность больше не будет соответствовать.

Если data1 записывается / изменяется, контроллеру необходимо:

  1. чтение данных2, пересчет четности12, запись данных1, запись четности12 (для небольших массивов)
  2. прочитать старые данные1, прочитать четность12, удалить старые данные четности из четности12, пересчитать четность12 с новыми данными1, записать данные1, записать четность12 (для больших массивов)

Итак, всякий раз, когда происходит изменение, количество операций контроллера увеличивается в три раза! Если их нельзя кэшировать, каждая запись приведет к выполнению трех операций, и вашему приложению придется ждать. С кешем многие операции чтения и записи могут быть опущены, и падение производительности будет намного меньше.

Единственное исключение из этого усиления операции записи - это когда вы записываете сразу всю полосу: просто возьмите data1 и data2 из буфера, вычислите четность12 и запишите все три сегмента. Это увеличение всего в 1,5 раза. Однако, чтобы иметь возможность объединить все входящие данные в полные полосы, вам необходимо поставить данные в очередь. Угадайте, вам снова нужен кеш.

В двух словах: если вы используете RAID5 или RAID6, вы абсолютно требуется кеш - это не роскошь. Слишком мало или даже отсутствие кеша убьет вашу производительность. Если это программный или размещенный RAID с настраиваемым кешем, выделите не менее 512 МБ, лучше 1 или 2 ГБ, и он «полетит». RAID5 с тремя дисками не будет удивительным по производительности, но может работать нормально.

Изменить: HP ML10 G9 имеет встроенный в набор микросхем контроллер Intel RST SATA RAID - host RAID. В зависимости от того, какая именно модель и контроллер используются, кэш должен быть где-то настраиваемым.