@LRC

Xen, Flashcache, Windows Guest проблема производительности?

Итак имеется Dom0 Debian
uname -a
Linux 2.6.32-5-xen-amd64 #1 SMP Mon Jan 21 05:36:35 UTC 2013 x86_64 GNU/Linux



Имеется raid1 поверх него LVM на разделах запущены виртуалки, стало не хватать IOPS

Доставили SSD диск, настроили Flashcache

Стало хуже

0 838860800 flashcache conf:

ssd dev (/dev/sdc1), disk dev (/dev/lv1/tpdb1) cache mode(WRITE_BACK)

capacity(50998M), associativity(512), data block size(4K) metadata block size(4096b)

skip sequential thresh(0K)

total blocks(13055488), cached blocks(9726), cache percent(0)

dirty blocks(96), dirty percent(0)

nr_queued(0)


Size Hist: 512:27698483 1024:145282 1536:1401768 2048:57163 2560:1399866 3072:140962 3584:27675984 4096:147120 4608:40 5120:43 5632:42 6144:50 6656:20 7168:32 7680:27 8192:3807 8704:26 9216:15 9728:34 10240:19 10752:22 11264:

32 11776:19 12288:1453 12800:13 13312:22 13824:22 14336:19 14848:19 15360:20 15872:28 16384:3198


0 838860800 flashcache stats:

reads(491839), writes(2601344)

read hits(3558), read hit percent(0)

write hits(3584) write hit percent(0)

dirty write hits(3088) dirty write hit percent(0)

replacement(0), write replacement(0)

write invalidates(319), read invalidates(1901)

pending enqueues(159), pending inval(109)

metadata dirties(658), metadata cleans(645)

metadata batch(577) metadata ssd writes(726)

cleanings(645) fallow cleanings(0)

no room(0) front merge(495) back merge(33)

disk reads(488281), disk writes(2598243) ssd reads(4203) ssd writes(36995)

uncached reads(455758), uncached writes(2597598), uncached IO requeue(0)

disk read errors(0), disk write errors(0) ssd read errors(0) ssd write errors(0)

uncached sequential reads(0), uncached sequential writes(0)

pid_adds(0), pid_dels(0), pid_drops(0) pid_expiry(0)


Как видно из статистики с гостевой Windows на диск, какого только размера блоки не прилетают, но больше всего 512байт

и Flashcache их не кеширует, она почему то кеширует только блоки размером 4K


Собственно вопрос в том, как заставить Flashcache кешировать блоки по 512 байт их больше всего и если хотя бы они попадут в кеш, нам это здорово поможет.

Альтернативный вариант решения проблемы как заставить гостевую Windows оперировать исключительно блоками размером 4К
  • Вопрос задан
  • 3315 просмотров
Решения вопроса 1
@LRC Автор вопроса
Если кому интересно, сам нашел решение.
У меня для виртуальных машин были сделаны LVM тома, и так как Windows пишет 512байт сектора, и специфика базы такова что куча маленьких транзакций, получался дикий поток мелких записей по 512 байт, который даже flashcache не кешировала, так как они не кратны 4К
Сейчас я перегнал разделы в файлы
dd if=/dev/lv/laylay of=/home/laylay.img
и заменил в xen конфиге машины с phy на file
flashcache c его writeback настроил на раздел, который монтируется в /home
Получается, что гостевая винда теперь в файле меняет по 512 байт, Dom0 в этих случаях меняет целый кластер 4к, и стало бы хуже, но так как теперь заработал writeback у flashcache стало значительно лучше.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
Собственно вопрос в том, как заставить Flashcache кешировать блоки по 512 байт их больше всего и если хотя бы они попадут в кеш, нам это здорово поможет.
Альтернативный вариант решения проблемы как заставить гостевую Windows оперировать исключительно блоками размером 4К
Проверить. может системный раздел ntfs, не отформатирован ли он с размером сектора 512? через backup-format-restore сделать размер сектора в 4к принудительно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы