Со мной тут поделились трагедией в виде проявления Bug 12309.
Если вкратце, то это та самая история, обсмеяная в Windows, которая не могла работать многозадачно при форматировании дискеты (нагрузке на какой-то носитель). Как выяснилось, она в Linux тоже есть, причем, я об нее несколько раз
спотыкался, но ввиду очевидности решения проблемы как-то не оценил.
Для тестов накидал скриптик
Код:
#!/bin/bash
sync; echo 3 > /proc/sys/vm/drop_caches
echo Start filegen
time dd if=/dev/urandom of=testfile bs=1M count=102400
sync; echo 3 > /proc/sys/vm/drop_caches
echo Start copy
time cp -f testfile /mnt/e/temp/
echo Sync
time sync
По умолчанию у меня в ядре было так (памяти 32Гб)
Код:
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 20
vm.dirty_writeback_centisecs = 500
vm.dirtytime_expire_seconds = 43200
Соответственно, для тестов менял на
Код:
vm.dirty_background_ratio = 1
vm.dirty_ratio = 5
в качестве инструментов наблюдения за системой использовал
Код:
vmstat -w 1
iostat -xdcm 2
cat /proc/vmstat | egrep "dirty|writeback"
while true; do echo "###" ;date ; egrep "^Cached:|^Dirty:|^Writeback:|file" /proc/meminfo; sleep 5; done
резюмирую, на mq-deadline проблемы никакой нет, изменения результатов в пределах погрешностей... Обещали, что будет дергаться курсор, как я уже говорил, он дергался, когда были BFQ и Kyber, соответственно, их я и не планировал использовать. С текущей настройкой системы ничего не дергается, разница в применении параметров ожидаема была только в том, что в одном случае быстрее было копирование, в другом - последующий sync. И в том, и другом случае скорость копирования была равномерной (подчеркну, что оба диски были BTRFS) и близкой к возможностям железа. Однако, записал для памяти идею изменения этих параметров (или соответствующих им параметров абсолютных значений vm.dirty_background_bytes и vm.dirty_bytes) на серверах СУБД со своим кешированием, большим объемом памяти и очень быстрыми хранилками. С точки зрения надежности хранения лучше эти параметры сильно занижать.