У меня очень низкая производительность с NFS между двумя машинами debian stretch, и я не могу найти решение. Я использую rsync на стороне сервера в файле экспорта и tcp, hard, intr, rsize = 32768, wsize = 32768 на стороне клиента в качестве параметров при монтировании. Оба сервера представляют собой виртуальные машины, работающие под Hyper V и использующие один и тот же внутренний сетевой коммутатор.
Performace приемлемо с использованием больших файлов, но с rsync производительность очень низкая. Требуется несколько секунд для копирования файла tar (размер 2 ГБ) и несколько минут для извлечения того же файла tar в ту же папку назначения. Tar без особых опций, просто tar xvf.
Я использую диски Western Digital WD40EFRX SATA на 4 ТБ. Эти 4 диска назначаются непосредственно виртуальной машине Hyper-V как физические диски. Эти 4 диска преобразованы в файловую систему RAID 5 ext4 на сервере Debian Stretch NFS. Я использую тестовые файлы - это 40 000 файлов разного размера, всего 2 ГБ. (в основном файлы небольшого размера, изображения и текст, а также несколько файлов jar).
Оба сервера используют один и тот же внешний виртуальный коммутатор Hyper-V, подключенный к гигабитному сетевому адаптеру Intel I211.
Пример ping от клиента NFS к серверу NFS:
PING xyzserver (192.168.1.49) 56 (84) байт данных. 64 байта от xyzserver (192.168.1.49): icmp_seq = 1 ttl = 64 time = 41,2 мс
64 байта от xyzserver (192.168.1.49): icmp_seq = 2 ttl = 64 time = 5,48 мс
64 байта от xyzserver (192.168.1.49): icmp_seq = 3 ttl = 64 time = 29,7 мс
64 байта от xyzserver (192.168.1.49): icmp_seq = 4 ttl = 64 time = 64,2 мс
64 байта от xyzserver (192.168.1.49): icmp_seq = 5 ttl = 64 time = 43.0 мс
64 байта от xyzserver (192.168.1.49): icmp_seq = 6 ttl = 64 time = 11,5 мс
64 байта от xyzserver (192.168.1.49): icmp_seq = 7 ttl = 64 time = 29,4 мс
РЕДАКТИРОВАТЬ2
Я считаю, что это не имеет ничего общего с Debian 9. Даже с Debian. И не только с NFS. Мы также тестировали с машинами Windows и CIFS, и производительность очень похожа.
Производительность при использовании больших файлов хороша (особенно с NFS), но с небольшими файлами (исходный код и т. Д.) Она может работать очень медленно (даже менее 1 МБ / с).
Есть идеи, что я делаю неправильно? (Старый вопрос)
Мы не рассматриваем возможность использования NFS или CIFS.
Есть идеи, что мы могли бы сделать, чтобы добиться достойной производительности? (Новый вопрос)
Наличие быстрой дисковой подсистемы RAID5 с быстрым сервером и наличие двух виртуальных машин на одном сервере кажется нелепым: мы не можем найти способ rsync-файлов или распаковки файлов в общей файловой системе с приличной скоростью.
Есть предложения, что я могу использовать? (аппаратное обеспечение)
Мы не нашли решения этих проблем, проблемы с производительностью с CIFS и NFS под Hyper-V.
мы наконец решили перейти на PROXMOX, и все работает намного лучше. Не уверен, почему, вероятно, виртуализация Debian Proxmox, поскольку она также основана на Debian, намного эффективнее Hyper-V, который, скорее всего, более эффективен для виртуализации Windows?