GNU/Linux >> Znalost Linux >  >> Linux

Gnome, nautilus kopírování souborů na USB se zastaví na 100 % nebo blízko

Důvodem, proč se tak děje, je, že program říká „zapiš tato data“ a linuxové jádro je zkopíruje do vyrovnávací paměti, která je zařazena do fronty na disk, a pak řekne „ok, hotovo“. Program si tedy myslí, že vše zkopíroval. Poté program soubor zavře, ale jádro náhle nechá čekat, než se vyrovnávací paměť vysune na disk.

Takže program vám bohužel nemůže říct, jak dlouho bude trvat vyprázdnění vyrovnávací paměti, protože to neví.

Pokud chcete vyzkoušet nějaké triky pro pokročilé uživatele, můžete zmenšit velikost vyrovnávací paměti, kterou Linux používá, nastavením parametru jádra vm.dirty_bytes na něco jako 15000000 (15 MB). To znamená, že aplikace nemůže získat více než 15 MB před svým skutečným průběhem. (Parametry jádra můžete měnit za běhu pomocí sudo sysctl vm.dirty_bytes=15000000 ale jejich zachování po restartu vyžaduje změnu konfiguračního souboru jako /etc/sysctl.conf které může být specifické pro vaši distribuci.)

Vedlejším efektem je, že váš počítač může mít s tímto nastavením nižší propustnost zápisu dat, ale celkově považuji za užitečné vidět, že program běží dlouhou dobu, zatímco zapisuje velké množství dat vs. Zdá se, že program dokončil svou práci, ale systém silně zaostává, protože jádro dělá skutečnou práci. Nastavení dirty_bytes na přiměřeně nízkou hodnotu může také pomoci zabránit tomu, aby váš systém přestal reagovat, když máte málo volné paměti a spustíte program, který náhle zapíše spoustu dat.

Ale nenastavujte to příliš malé! Používám 15 MB jako hrubý odhad, že jádro dokáže vyprázdnit vyrovnávací paměť na normální pevný disk za 1/4 sekundy nebo méně. Chrání můj systém před pocitem "laggy".


Linux
  1. Zkopírujte soubory v terminálu Linux

  2. Linux – Gnome Terminal se nespustí?

  3. Linux – Zpomalit kopírování disku/disku?

  1. Jak povolit dávkové přejmenování založené na metadatech v souborech GNOME (Nautilus) na Ubuntu

  2. Najděte a zkopírujte soubory

  3. Jak programovat soubory stromu zařízení Linux .dts?

  1. Seznam souborů, ke kterým program přistupuje?

  2. Kopírovat prvních N souborů do jiného adresáře?

  3. Proč nemohu zkopírovat velké množství souborů na USB flash disk?