У нас плохая настройка SAN на сервере Ubuntu 1U с iSCSI-Target с двумя дисками по 300 ГБ в RAID-0. Затем мы используем его для блочного хранилища виртуальных машин. Гипервизор подключается к SAN через гигабит через выделенную VLAN и интерфейсы.
У нас есть только одна настройка виртуальной машины и мы делаем несколько тестов. Если мы бежим hdparm -t /dev/sda1
от виртуальной машины мы получаем "нормальную" производительность 75 МБ / с от виртуальной машины к SAN. Затем мы в основном компилируем пакет с ./configure
и make
. Все начинается нормально, но затем внезапно средняя нагрузка на SAN вырастает до 7+, и все замедляется до ползания. Когда мы подключаемся по SSH к SAN и запускаемся сверху, убедитесь, что нагрузка составляет 7+, но использование ЦП практически ничего, кроме того, у сервера есть 1,5 ГБ доступной памяти. Когда мы завершаем компиляцию на виртуальной машине, НАГРУЗКА в SAN медленно возвращается к цифрам меньше единицы.
Что в мире вызывает это? Как мы можем диагностировать это дальше?
Вот два скриншота из SAN при высокой нагрузке.
1> Output of iotop on the SAN:
2> Output of top on the SAN:
Вы должны увидеть значительное увеличение производительности после включения кэширования записи на целевом объекте (детали зависят от реализации - что вы используете, tgt?) И на ваших дисках.
hdparm -W 1 /dev/sda
hdparm -W 1 /dev/sdb
Однако есть цена: это поставит под угрозу целостность данных (особенно если вы используете базы данных) в случае отключения электроэнергии или зависания системы SAN, поскольку данные, которые, как считается, были постоянно записаны на диск, находились только в изменчивой DRAM. Чтобы снизить этот риск, вы должны использовать контроллер с BBWC (кэш записи с резервным питанием от батареи), где данные сохранятся в течение некоторого времени (обычно 1-2 дня) при отключении электроэнергии.
Основная «проблема» ESXi в том, что он постоянно синхронизирует () диски. Необходимость записывать метаданные в VMFS (если она у вас есть) усугубляет ситуацию. Форумы сообщества vmware полны сообщений «мои диски работают медленно» всякий раз, когда люди используют контроллеры без кешей записи.
Я бы порекомендовал попробовать несколько вещей:
dd if=/dev/zero bs=1M | nc ...
) и посмотрите, одинаково ли увеличиваются нагрузки (сравните обе нагрузки и% s процессора). Вероятно, вам следует попробовать протестировать только одно соединение, а также запустить около 8 из этих тестов одновременно. И попробуйте отправлять и получать данные в обоих направлениях.Я также наткнулся на некоторые Рекомендации по настройке производительности iSCSI в последнее время, что может оказаться полезным, даже если эти рекомендации могут не касаться конкретной проблемы, с которой вы столкнулись.
Запустите iometer на своей виртуальной машине.
Всего с двумя дисками со скоростью вращения 7,2 тыс. Об / мин произвольный доступ может вам навредить. Вы можете получить от них только определенное количество операций в секунду.
Попробуйте запустить два сценария с iometer:
1) последовательное чтение / запись - это должно давать хорошие, жирные числа. 2) произвольный доступ к диску - здесь вас ждет земля боли.
Настройте файл для тестов, достаточно большой, чтобы его принудительно вытолкнуть из кеша виртуальной машины.