Диагностика потребностей кэша ZFS

У меня особая нагрузка на машину, которая ограничена дисковым вводом-выводом, в основном чтением.

Основная часть операций ввода-вывода происходит на медленном сетевом диске, который сформирован с помощью ZFS .

Используя iostat, я ясно вижу, что использование этого диска составляет около 100%, следовательно, я, по крайней мере, знаю, что это узкое место.

Более того, я вижу, что с этого диска я в основном читаю.

Медленный диск содержит около 3 Тл.

Я был настроен оптимистично, я установил кеш L2ARC и, используя zpool iostat , я вижу что-то вроде этого:

pool                           alloc   free   read  write   read  write
-----------------------------  -----  -----  -----  -----  -----  -----
  virtio-993974c9-d6be-412d-9  3,02T  1,85T     13      0  95,9K      0
cache                              -      -      -      -      -      -
  /root/cache.l2arc            12,5G  2,47G     15      2   152K   116K
-----------------------------  -----  -----  -----  -----  -----  -----
sam. févr.  9 19:48:58 CET 2019
                                 capacity     operations     bandwidth 
pool                           alloc   free   read  write   read  write
-----------------------------  -----  -----  -----  -----  -----  -----
  virtio-993974c9-d6be-412d-9  3,02T  1,85T     18      0   104K      0
cache                              -      -      -      -      -      -
  /root/cache.l2arc            12,5G  2,47G     19      0   176K      0
-----------------------------  -----  -----  -----  -----  -----  -----
sam. févr.  9 19:48:59 CET 2019
                                 capacity     operations     bandwidth 
pool                           alloc   free   read  write   read  write
-----------------------------  -----  -----  -----  -----  -----  -----
  virtio-993974c9-d6be-412d-9  3,02T  1,85T     23    308   152K  7,42M
cache                              -      -      -      -      -      -
  /root/cache.l2arc            12,5G  2,47G     31      3   276K   204K
-----------------------------  -----  -----  -----  -----  -----  -----

Итак, L2 помогает, но не сильно . Более того, я вижу, что L2 не полностью заполнен, поэтому более крупный не поможет, верно?

У меня разумная скорость кэширования: 98,5% для ARC и 73,7% для L2.

Более того, медленный диск все еще используется примерно на ~ 100%, поэтому, если бы я мог удалить работу с диска, мое приложение работало бы быстрее.

Есть ли способ узнать, что мне следует попробовать дальше? Что может помочь?

1
задан 9 February 2019 в 20:57
1 ответ

Большая L2ARC вполне может заполнить примерно такую же емкость, что и та, что у вас сейчас (которая довольно крошечная, если я правильно понял - всего 12,5 Гб? )

L2ARC заполняет из выселений ARC, и вполне возможно, что содержимое L2ARC и ARC - это большая часть вашего действительно "горячего" набора данных, и у вас нет множества повторяющихся чтений, которые еще не записаны в кэш.

Как обычно в обсуждениях L2ARC, Скорее всего, вы будете лучше обслуживаться, просто добавляя больше оперативной памяти на сервер для использования с ARC. Сколько оперативной памяти у вас есть? Сколько оперативной памяти доступно для использования в качестве ARC? (Смотрите /etc/modprobe.d/zfs.conf; по умолчанию это 50% физической оперативной памяти в системе)

.
0
ответ дан 4 December 2019 в 03:17

Теги

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