Есть ли какие-либо недостатки в увеличении размера кэша упреждающего чтения?
На нашей ферме в настоящее время мы работаем на уровне 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) за один шаг.