Я пытаюсь настроить Linux для максимально возможной задержки записи (минут). Для тех, кто задается вопросом, почему: это заговор Чиа.На SSD/NVMe требуется очень интенсивная запись, и в случае сбоя системы вам все равно придется перезагружаться с нуля.
Минимизация операций записи на диск фактически увеличивает ожидаемый срок службы дисков.
Тем не менее, я настроил тестовую систему (20.04.1-Ubuntu LTS на виртуальной машине Hyper V — Windows 10).
Я устанавливаю свои «грязные» флаги как:
судо sysctl-a | grep грязный
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 75
вм.грязные_байты = 0
vm.dirty_expire_centisecs = 120000
vm.dirty_ratio = 80
vm.dirty_writeback_centisecs = 180000
vm.dirtytime_expire_seconds = 43200
Это дает мне около 3 ГБ кеша (я использую 4 ГБ оперативной памяти для этой виртуальной машины).
я следую этим инструкции чтобы проверить, изменил на это (так что это случайно и 1 ГБ)
dd if=/dev/random of=testfile.txt bs=1M count=1000
И используя
кошка /proc/meminfo | grep Грязный
кошка /proc/vmstat | egrep "грязный|обратная запись"
Чтобы увидеть, увеличивается ли количество грязных страниц по мере продвижения.
Количество грязных страниц увеличивается, как и ожидалось до тех пор дд заканчивается. Когда он заканчивается, количество грязных страниц почти мгновенно уменьшается до 0, и Windows начинает записывать данные (я отслеживаю сторону Windows с помощью монитора ресурсов, чтобы увидеть, когда записи действительно попадают на диск).
Итак ... это потому, что Linux сбрасывает файл, как только он закрывается dd? может быть, это dd делает промывку? Я ожидал, что файл останется на грязных страницах, так как он меньше доступного для него места (эта тестовая система больше ничего не делает).
Любые идеи? Спасибо.