Как пользоваться флешкой?

Автор Craftsman, 23 октября 2024, 15:01:43

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

CoolAller

#30
Цитата: koshak83 от 24 октября 2024, 12:12:54Винда с флешками и работает как со съёмными носителями, а Линукс как с постоянными. По этому винда старается сразу из Кеша скинуть информацию на носитель, а Линукс это действие может отложить.
Вы можете изменить поведение буфера, настройте размер буфера.

Set Buffer size:  /etc/sysctl.conf

vm.dirty_bytes = 4194304
vm.dirty_background_bytes = 4194304

Launch in terminal:
sudo sysctl -p

Вы также можете экспериментировать с этими значениями для достижения желаемого результата:
vm.dirty_bytes — принудительная запись
vm.dirty_background_bytes — фоновая запись

koshak83

#31
Цитата: CoolAller от 25 октября 2024, 21:35:21
Цитата: koshak83 от 24 октября 2024, 12:12:54Винда с флешками и работает как со съёмными носителями, а Линукс как с постоянными. По этому винда старается сразу из Кеша скинуть информацию на носитель, а Линукс это действие может отложить.
Вы можете изменить поведение буфера, настройте размер буфера.

Set Buffer size:  /etc/sysctl.conf

vm.dirty_bytes = 4194304
vm.dirty_background_bytes = 4194304

Launch in terminal:
sudo sysctl -p

Вы также можете экспериментировать с этими значениями для достижения желаемого результата:
vm.dirty_bytes — принудительная запись
vm.dirty_background_bytes — фоновая запись

Это? Я так понял здесь просто в процентах идёт.

https://wiki.archlinux.org/title/Sysctl_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
Цитировать4 Виртуальная память

Есть несколько ключевых параметров для настройки работы подсистемы виртуальной памяти ядра Linux и записи изменённых (dirty) данных на диск. Подробности в документации ядра Например:

    vm.dirty_ratio = 10

    Указывает (в процентах от общего объёма доступной памяти, содержащей свободные и восстанавливаемые (reclaimable) страницы) количество страниц, при достижении которого выполняющий запись процесс сам начнёт записывать изменённые данные из памяти на диск.

    vm.dirty_background_ratio = 5

    Указывает (в процентах от общего объёма доступной памяти, содержащей свободные и восстанавливаемые (reclaimable) страницы) количество страниц, при достижении которого фоновые потоки для записи данных в ядре начнут записывать изменённые данные из памяти на диск.

Как отмечено в комментариях к параметрам, при установке этих значений необходимо учитывать общий объём оперативной памяти. Например, упрощая, можно взять установленную системную оперативную память вместо доступной памяти:
Важно:

    Бо́льшие значения могут повысить производительность, но при этом повышается риск потери данных.
    Установка этого значения в 0 может привести к увеличению задержки на дисках и подвисаниям.

Смотрите https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/ для более подробной информации.

    Согласно общепринятому мнению, установка vm.dirty_ratio на 10% от ОЗУ является разумным значением, если ОЗУ составляет, скажем, 1 ГБ (поэтому 10% — это 100 МБ). Но если машина имеет гораздо больше ОЗУ, скажем, 16 ГБ (10% — это 1.6 ГБ), этот процент оказывается непропропорционально большим, поскольку он превратится в несколько секунд записи на вращающиеся диски. Более разумным значением в этом случае может быть 3 (3% от 16 ГБ — это примерно 491 МБ).
    Аналогично, установка vm.dirty_background_ratio на значение 5 может быть подходящим вариантом для небольших объёмов памяти, но опять же, учитывайте и настраивайте в соответствии с объёмом памяти конкретной системы.

Кэш VFS

Уменьшение значения параметра кэша virtual file system (VFS) может улучшить отзывчивость системы:

    vm.vfs_cache_pressure = 50

    Он контролирует память, которая используется ядром для кэширования объектов каталогов и inode (кэш VFS). Уменьшение этого значения по сравнению со значением по умолчанию 100 делает ядро менее склонным к использованию кэша VFS (не устанавливайте его в 0, это может привести к состоянию out-of-memory).

CoolAller

#32
Цитата: koshak83 от 25 октября 2024, 22:37:53так понял здесь просто в процентах идёт
В процентах это если вам необходима настройка для серверов и высоконагруженных систем, где требуется оптимизация работы с памятью и диском.

Также меньшие пороги значений могут повлиять на сохранность данных при сбоях, так как запись будет происходить более активно. Вам же, насколько я понял, необходимо настроить поведение записи на диск на обычной рабочей станции, поэтому можно указать поведение буфера в байтах.

koshak83

Цитата: CoolAller от 25 октября 2024, 22:51:05
Цитата: koshak83 от 25 октября 2024, 22:37:53так понял здесь просто в процентах идёт
В процентах это если вам необходима настройка для серверов и высоконагруженных систем активно использующих диск.

Также меньшие пороги значений могут повлиять на сохранность данных при сбоях, так как запись будет происходить более активно. Вам же, насколько я понял, необходимо настроить поведение записи на диск на обычной рабочей станции, поэтому можно указать поведение буфера в байтах.

Понятно. 4 Мегабайта оптимально, да?

CoolAller

Цитата: koshak83 от 25 октября 2024, 22:55:154 Мегабайта оптимально, да?
Все будет зависеть от сценария использования с учетом того, что устанавливаемые параметры влияют на все диски системы.
Насколько я понял, нужно чтобы при записи на съемные носители не происходило сильных задержек, поэтому вы можете использовать эти или чуть большие значения.

Главное понимать чем эти два пороговых значения отличаются и на что они влияют.

vm.dirty_bytes и vm.dirty_background_bytes устанавливают пороги для одного и того же кэша записанных данных в оперативной памяти, но с разными условиями для начала записи на диск:

vm.dirty_bytes — это порог, который определяет, когда система начинает принудительную запись данных на диск. Когда общий объём данных в кэше достигнет установленного значения, система немедленно начнёт их записывать на диск с высоким приоритетом, чтобы освободить кэш и предотвратить его переполнение.

vm.dirty_background_bytes — это порог, который запускает фоновую запись данных на диск с низким приоритетом. Если объём данных в кэше достигает установленного значения, система начинает запись в фоновом режиме, освобождая часть кэша без влияния на производительность приложений.

koshak83

Цитата: CoolAller от 25 октября 2024, 23:07:21
Цитата: koshak83 от 25 октября 2024, 22:55:154 Мегабайта оптимально, да?
Все будет зависеть от сценария использования с учетом того, что устанавливаемые параметры влияют на все диски системы.
Насколько я понял, нужно чтобы при записи на съемные носители не происходило сильных задержек, поэтому вы можете использовать эти или чуть большие значения.

Главное понимать чем эти два пороговых значения отличаются и на что они влияют.

vm.dirty_bytes и vm.dirty_background_bytes устанавливают пороги для одного и того же кэша записанных данных в оперативной памяти, но с разными условиями для начала записи на диск:

vm.dirty_bytes — это порог, который определяет, когда система начинает принудительную запись данных на диск. Когда общий объём данных в кэше достигнет установленного значения, система немедленно начнёт их записывать на диск с высоким приоритетом, чтобы освободить кэш и предотвратить его переполнение.

vm.dirty_background_bytes — это порог, который запускает фоновую запись данных на диск с низким приоритетом. Если объём данных в кэше достигает установленного значения, система начинает запись в фоновом режиме, освобождая часть кэша без влияния на производительность приложений.
Спасибо огромное. А вы не подскажете как посмотреть текущие значения?

CoolAller

#36
Цитата: koshak83 от 25 октября 2024, 23:23:20А вы не подскажете как посмотреть текущие значения?
sysctl vm.dirty_bytes
sysctl vm.dirty_background_bytes

Или взять значения из /proc, открыв соответствующие файлы в каталоге /proc/sys/vm/:

cat /proc/sys/vm/dirty_bytes
cat /proc/sys/vm/dirty_background_bytes

Для подбора и тестирования настроек, можно использовать применение на лету без перезагрузки:
sudo sysctl -w vm.dirty_background_bytes=1000
sudo sysctl -w vm.dirty_bytes=1000
(Для примера указаны рандомные значения в 1000 байт).

После перезагрузки значения не сохраняются, а берутся из файла /etc/sysctl.conf, поэтому для их фиксации, после подбора оптимальных параметров, их нужно внести в файл /etc/sysctl.conf.

koshak83

Цитата: CoolAller от 25 октября 2024, 23:29:48
Цитата: koshak83 от 25 октября 2024, 23:23:20А вы не подскажете как посмотреть текущие значения?
sysctl vm.dirty_bytes
sysctl vm.dirty_background_bytes

Или взять значения из /proc, открыв соответствующие файлы в каталоге /proc/sys/vm/:

cat /proc/sys/vm/dirty_bytes
cat /proc/sys/vm/dirty_background_bytes

Для подбора и тестирования настроек, можно использовать применение на лету без перезагрузки:
sudo sysctl -w vm.dirty_background_bytes=1000
sudo sysctl -w vm.dirty_bytes=1000
(Для примера указаны рандомные значения в 1000 байт).

После перезагрузки значения не сохраняются, а берутся из файла /etc/sysctl.conf, поэтому для их фиксации, после подбора оптимальных параметров, их нужно внести в файл /etc/sysctl.conf.

Огромное спасибо!!!  :)  :)  :)

ek-nfn

парочка в виде адаптера M2->usb3.x + ssd M2 работает сильно шустрее любой флэшки
Debian 12  -> Devuan 5 xfce -> MX Linux 23

dr_faust

#39
Цитата: ek-nfn от 25 октября 2024, 16:06:09
Цитата: dr_faust от 25 октября 2024, 15:29:22есть случаи, когда невозможно занунуть мелкие файлы в архив, когда обязательно надо их по одному копировать.
заинтриговали... Это что за случаи ?
Так-то конвейер  при копировании с многопоточной архивацией должен все резко ускорить при наличии многоядерного cpu. Если, конечно, разговор о копировании тысяч мелких файлов общим объемом в гигабайты, десятки гигабайт. Иначе не стоит овчинка выделки.

Книги читать любите? читалкой пользуетесь? Попробуйте ей скормить один большой архив в единицы и десятки гб вместо одиночных файловв кб и мб.

26 октября 2024, 14:52:04
CoolAller, а можно значение задать в кб или мб?

Что-то в виде

vm.dirty_bytes=4mb
vm.dirty_background_bytes=10mb
?

Пересчитвать в байты муторно.

26 октября 2024, 14:54:06
P.S. У меня вообще по нулям оба параметра. Т.е. оно должно сразу записывать. Так понимаю.

Тем не менее записал на флешку пагу гигабайт - она пару минут синхрониризуется и только потом отключается.
Devuan 4. Debian 12. LXDE.

ek-nfn

#40
Цитата: dr_faust от 26 октября 2024, 13:55:48Попробуйте ей скормить один большой архив в единицы и десятки гб вместо одиночных файловв кб и мб.
Я постоянно это делаю, у меня есть архивы по 50 и более гб. И я знаю сколько часов требуется на перегонку тысяч файлов объемом под 300+ гб на внешний носитель в виде флэшки или внешнего sata диска. Поэтому решил этот вопрос заменой железа либо прямой перегонкой файлов по локалке (коммутатор требуется как минимум на 1 гбит, тогда заметно быстрее флэшки).
Не мучайтесь с флэшками на большие объемы мелких данных. Либо меняете их на внешний ssd m2 nvme через usb-3, либо осваиваете копирование множества мелких файлов через архивирование-tar вкупе с многопоточным его сжатием через один из компрессоров - zstd, pigz, pbzip2, lbzip2, xz и т.д. Даже нормальная sd карта класса 10 с правильным картридером usb3 показывает большие скорости, чем средняя флэшка usb3
Debian 12  -> Devuan 5 xfce -> MX Linux 23

dr_faust

Цитата: ek-nfn от 26 октября 2024, 15:23:41Я постоянно это делаю, у меня есть архивы по 50 и более гб.

Хм, на читалку как физический девайс? Так они ж работают на fat32. Т.ч. архив свыше 4 гб нельзя залить, даже если некие модели этих девайсов и подерживают чтения файлов из единого архива.

Вы, наверное, что-то путаете. Или я неправильно понял контекст.
Devuan 4. Debian 12. LXDE.

ek-nfn

Цитата: dr_faust от 28 октября 2024, 14:07:46Хм, на читалку как физический девайс? Так они ж работают на fat32
что такое читалка ? А fat32 у меня лишь на одном разделе - загрузочном efi
Debian 12  -> Devuan 5 xfce -> MX Linux 23

dr_faust

Цитата: ek-nfn от 28 октября 2024, 14:42:24
Цитата: dr_faust от 28 октября 2024, 14:07:46Хм, на читалку как физический девайс? Так они ж работают на fat32
что такое читалка ? А fat32 у меня лишь на одном разделе - загрузочном efi

Это такой девайс с экраном, который не излучает свет. Предназначен для чтения книг в текстовых форматах и во всяких пдф с дежавю.
Devuan 4. Debian 12. LXDE.

ek-nfn

Цитата: dr_faust от 28 октября 2024, 14:44:19Предназначен для чтения книг в текстовых форматах и во всяких пдф с дежавю.
есть же аудиокниги, слушаются в любом режиме, даже на совещаниях :D зачем напрягать зрение?
Так-то у меня терабайты фотографий (любитель-фотограф я), которые постоянно надо перекидывать для обработки или еще чего с одного компа на другой. Один альбом запросто тянет на 100-300 гб с тысячами фотками. И таких альбомов десятки. Поэтому проблема с переносом-туда-сюда меня давно забодала. Отсюда и предложенные решения. А флэшка это для редких случаев и на небольшие объемы, для остального не годится.
Debian 12  -> Devuan 5 xfce -> MX Linux 23