Při zápisu na /dev/st0 se automaticky po jakékoli operaci přetočí na začátek (autorewind). Zařízení /dev/nst0 nepřetáčí na začátek.
Když dám třeba:
tar -b 128 -cvf /dev/nst0 dvdimage_velke_1GB.iso
tak to zapíše tou rychlostí 11MB/s, kdy páska vždy 7 vteřin jede, pak se na 3 vteřiny zastaví a tak pořád dokola, dokud se soubor neuloží.
Když nastavím přes mt velikost bloku na 64kB:
mt -f /dev/nst0 setblk 64k
není tam žádný rozdíl v rychlosti oproti výchozí automatické (nastavené na nulu).
Zkoušel jsem různé kombinace parametru -b u taru, ale je to jen pomalejší. Pří 64kB (128 bloků) je to nejrychlejší. Zkoušel jsem i kombinace různých velikostí bloku nastavených přes mt a přes tar, ale bez většího úspěchu.
Rychlost disků a řadiče doufám není problém. Mezi sebou svazky kopírují rychlostí kolem 80 MB/s.
Když přes dd pošlu větší nenakešovaný soubor z disku do /dev/null, je rychlost 119 MB/s.
dd if=TrueOS-Desktop-2016-08-24-x64-PC_BSD.iso of=/dev/null
3309900+0 records in
3309900+0 records out
1694668800 bytes (1.7 GB) copied, 14.292 s, 119 MB/s
Když to udělám hned znovu, čte se jen z keše a rychlost dd do /dev/null je přes 420MB/s
dd if=TrueOS-Desktop-2016-08-24-x64-PC_BSD.iso of=/dev/null
3309900+0 records in
3309900+0 records out
1694668800 bytes (1.7 GB) copied, 4.02576 s, 421 MB/s
Pokud stejný soubor pošlu tarem na pásku (čte se zase z keše), tak se to vleče něco málo přes 11MB/s a páska 30% času stojí.
date; tar -b 128 -cf /dev/nst0 ./TrueOS-Desktop-2016-08-24-x64-PC_BSD.iso ; date
Mon Feb 27 11:00:04 CET 2017
Mon Feb 27 11:02:34 CET 2017
Během zápisu se ale systém nudí:
top - 11:01:35 up 15 min, 2 users, load average: 0.82, 0.53, 0.39
Tasks: 266 total, 1 running, 265 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.4%us, 1.2%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8058696k total, 2463000k used, 5595696k free, 42424k buffers
Swap: 2047992k total, 0k used, 2047992k free, 1910920k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
78 root 39 19 0 0 0 S 2.3 0.0 0:36.62 kipmi0
3412 root 20 0 113m 1176 944 D 1.3 0.0 0:00.98 tar
3099 petr 20 0 294m 12m 8988 S 0.7 0.2 0:01.25 gnome-terminal
2121 root 20 0 210m 17m 1080 S 0.3 0.2 0:02.70 xrdp
2710 petr 20 0 147m 50m 6256 S 0.3 0.6 0:03.56 Xvnc
3455 root 20 0 15168 1328 904 R 0.3 0.0 0:00.05 top
1 root 20 0 19356 1496 1188 S 0.0 0.0 0:01.75 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.07 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.16 migration/1
8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1
10 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
11 root RT 0 0 0 0 S 0.0 0.0 0:00.14 migration/2
Nastavení velikosti bloku přes mt na 64k (což odpovídá -b 128 u taru) nemá vliv:
mt -f /dev/nst0 setblk 64k
date; tar -b 128 -cf /dev/nst0 ./TrueOS-Desktop-2016-08-24-x64-PC_BSD.iso ; date
Mon Feb 27 11:08:09 CET 2017
Mon Feb 27 11:10:35 CET 2017
Menší bloky to jen zhoršují. Viz zde nastaveno 32k:
mt -f /dev/nst0 setblk 32k
date; tar -b 64 -cf /dev/nst0 ./TrueOS-Desktop-2016-08-24-x64-PC_BSD.iso ; date
Mon Feb 27 11:12:01 CET 2017
Mon Feb 27 11:16:38 CET 2017
Zkoušeno až do nejmenšího možného 8kB bloku, kdy to zapisuje desetinovou rychlostí oproti 64kB.
Víc jak 64kB se nastavit nedá:
mt -f /dev/nst0 setblk 128k
date; tar -b 256 -cf /dev/nst0 ./TrueOS-Desktop-2016-08-24-x64-PC_BSD.iso ; date
Mon Feb 27 11:18:51 CET 2017
tar: /dev/nst0: Cannot write: Device or resource busy
tar: Error is not recoverable: exiting now
Mon Feb 27 11:18:57 CET 2017
Pořád si ale myslím, že dělám něco blbě, nebo mám někde něco blbě nastaveno. Takže budu rád za každou radu.