Підсумок
Як можна налаштувати Linux одночасно і на читання з локального диска / файлової системи, і на запис на загальну мережу, на відміну від читання, поки дані не надходять через мережу, а потім надсилати ці дані по мережі, коли локальний диск є простоювати?
Набагато швидше читати і писати одночасно, замість того, щоб виконувати лише одну операцію, а потім іншу по черзі.
Деталі
Я переміщую велику кількість даних з локальних дисків на машині Linux до пристрою NAS.
Я rsync
в основному використовую для копіювання /srv/data
в /mnt/nas
це CIFS-кріплення.
Це почалося добре, читаючи зі швидкістю 100 Мб / сек і записуючи в NAS зі швидкістю 100 МБ / сек (ліміт гігабітної мережі), одночасно читання та запис відбувається одночасно.
Однак зараз, через кілька годин, я виявляю, що він читає з локального диска, потім зупиняє прочитане, поки він пише в NAS, тоді, коли більше даних для запису в NAS немає, він продовжує читати з диска знову. Мережа в режимі очікування, коли диск читається, а диск в режимі очікування, коли мережа використовується.
Потрібно сказати, що читання 200MB, а потім запис 200MB займає набагато більше часу, ніж читання та запис цих 200MB одночасно.
Як я можу налаштувати ядро таким чином, щоб воно дотримувалося попередньої поведінки читання і запису одночасно, а не чергування читання і запису, виконуючи лише одну операцію за один раз?
Деякі зауваження: Коли локальний диск читає зі швидкістю 100 Мб / сек, все, здається, відбувається паралельно просто чудово, але як тільки диск сповільнюється (здається, чомусь зараз йде лише 20 МБ / сек), саме тоді читається / записується переключення, здається, відбувається.
Я також можу запускати sync
вручну кожні кілька секунд, щоб зробити записи, що відбуваються паралельно з читанням (хоча, очевидно, зі зниженою швидкістю), однак введення циклу, щоб він sync
працював while
кожні п’ять секунд, не здається правильним рішенням ...
Здається, ядро кешує близько 1 ГБ даних, а потім виписує їх по мережі якомога швидше - що нормально - я просто не розумію, чому повільний диск потрібно перестати читати, поки дані надсилаються через мережа.