Недостатки упреждающего чтения в Linux

Недостатки упреждающего чтения в Linux

Есть ли какие-либо недостатки в увеличении размера кэша упреждающего чтения?

На нашей ферме в настоящее время мы работаем на уровне 256, и при увеличении этого показателя мы наблюдаем значительный прирост производительности.

 

[root@server~]# hdparm -tT /dev/sda /dev/sda: 
Timing cached reads: 7352 MB in 2.00 seconds = 3677.62 MB/sec 3
Timing buffered disk reads: 244 MB in 3.10 seconds = 78.68 MB/sec 

[root@server ~]# blockdev --setra 10240 /dev/sda 

[root@server ~]# hdparm -tT /dev/sda /dev/sda: 
Timing cached reads: 11452 MB in 2.00 seconds = 5728.52 MB/sec 
Timing buffered disk reads: 422 MB in 3.17 seconds = 133.04 MB/sec

Мы работаем на версии 2.6.

решение1

Недостатки:

  • Напрасный ввод-вывод. Ваш компьютер может тратить время на чтение данных с диска, которые ему не нужны.
  • Потерянная память. То, что он читал и не нужно было читать, хранится в памяти, которую можно было бы использовать для чего-то другого.

Вам, вероятно, нужно придумать тест, который будет более репрезентативным для вашего реального использования, чем hdparm -t. hdparm -t выполняет последовательный доступ, что является случаем, когда большое опережающее чтение будет очень полезным. Когда у вас много случайного доступа, выигрыш может быть не таким уж полезным и, вероятно, вредным.

Насколько мне известно, вашим данным ничего не угрожает, только производительность может ухудшиться в зависимости от конкретной рабочей нагрузки. Вероятно, это один из типов вещей, которые вам придется настраивать и тестировать. Я не думаю, что я бы сделал такое большое изменение (с 256 до 10240) за один шаг.

Связанный контент