NTFS lassúság Windows 10 alatt

 ( _Franko_ | 2019. október 6., vasárnap - 15:55 )

Lassúnak tűnt Windows 10 alatt a Java fordítás, csináltam teszteket és valóban lassú, de nagyon. Viszont nem az NTFS önmagában lassú, a FUSE-os NTGS-3G csak dupla idő.

A lassú rész az, amikor sok (1000-1500) apró fájlt kell másolnia. Mit kellene javítanom, hogy gyors legyen?

Linux-ext4:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  19.813 s
[INFO] Finished at: 2019-10-06T14:29:47+02:00
[INFO] ------------------------------------------------------------------------

Linux-ntfs-3g:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  40.799 s
[INFO] Finished at: 2019-10-06T14:30:32+02:00
[INFO] ------------------------------------------------------------------------

Windows-ntfs:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  06:04 min
[INFO] Finished at: 2019-10-06T15:46:18+02:00
[INFO] ------------------------------------------------------------------------

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Kikapcsolt Windows Defender esetén drasztikusan javult a fordítási idő:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  36.044 s
[INFO] Finished at: 2019-10-06T16:14:30+02:00
[INFO] ------------------------------------------------------------------------

Azért a Linux-ext4 idő elérése jó lenne, de ezzel már meg tudok barátkozni.

--
https://iotguru.live

Win Defender kivetelekhez add hozzá a java/fejlesztői mappákat. Az ntfs sebesség pedig kozelitoleg egyezik az ext4-gyel. Azon nem fogsz gyorsítani. Kész vagy.

"Az ntfs sebesség pedig kozelitoleg egyezik az ext4-gyel."

Én egyelőre még kétszeres különbséget látok az Ext4 javára, de ezzel azért meg tudok békélni, ha néha-néha Windows 10 alatt kell valamit fejleszteni.

--
https://iotguru.live

Linux alatt is kioffolható:

noatime
- Nem frissíti az inode-ok elérési idejét a fájlrendszeren - növelheti a teljesítményt, lásd atime opciók.

https://wiki.archlinux.org/index.php/Fstab_%28Magyar%29

Arra azért kíváncsi lennék, hogy milyen felhasználás esetén sikerült ezt tapasztalnod?

Java/Korlin/Android toolchain-ek esetén a személyes tapasztalatom az, hogy Linux/ext4 használata esetén a fordítási idő kb. a fele a Win7/NTFS illetve Win10/NTFS párosokhoz képest. Természetesen ugyanazon a vason, win esetén kikapcsolt vírusvédelemmel.

Topicnyitó teszteredméynére írtam, hogy 364mp-ről sikerült 36-ra csökkenteni az időt, ami már majdnem a 20mp.

"sikerült 36-ra csökkenteni az időt, ami már majdnem a 20mp"

Azért az még mindig majdnem a duplája, ami azért egy nagyobb projekt esetén jelentős idő... nem mindegy, hogy tesztekkel 10 perc vagy 5 perc egy teljes build. Az, hogy 19 vagy vagy 36 másodperc, az valóban nem annyira fájdalmas különbség, de akkor is a duplája.

--
https://iotguru.live

A precíz eredményhez nem ártana tudni, hogy a két ntfs az két külöböző volt-e, és az fs-ek melyik zónán voltak, avagy ssd.

Ha számítana, akkor odaírnám. Egyébként ugyanaz az NTFS partíció és ugyanaz az SSD, ugyanazon a gépen, amin minden ugyanaz.

--
https://iotguru.live

Csodás. Azonban az már nagyon nem mindegy, hogy 3,5 perc vagy 7 perc a build idő. Vagy esetleg 30 perc vs 1 óra.

Ez notebook, vagy szünetmentesen van? Mert akkor be lehet kapcsolni jobban a cache-t az SSD-nek, és amíg van szabad memóriád, addig elsőnek oda ír és onnan olvas.
Device Manager-ben az SSD-re kattintva lehet ezeket állítani.

Az NTFS-en mekkora a cluster méret? Tömörítés nincs használva?

NTFS Last Access Time Updates in Windows 10? Ez ki van kapcsolva?

https://winaero.com/blog/disable-ntfs-last-access-time-updates-in-windows-10/

Továbbá ezt is kikapcsolhatod: DOS 8.3 Name creation

http://www.ntfs.com/ntfs_optimization.htm

Továbbá az is segíthet, ha egy külön partícióra raksz mondjuk egy 2-8 GB page file-t, ami NTFS lesz, kikapcsolt 8.3 + last access time.

Régi teszt, de releváns, hogy befolyásolja a cluster méret a sebességet:

https://ejrh.wordpress.com/2012/10/26/cluster-size-experiment/

Én adatra 4K-s cluster méretet javaslok, főként az SSD blokkméret miatt.

Sakk-matt,
KaTT :)

Default fájlrendszer, ahogy a Windows 10 telepítő létrehozta azt, tömörítés nincs, last access valószínűleg van, de mivel itt sok apró fájl írása folyik, kevéssé hiszem, hogy ez jelentősen gyorsítana a dolgokon.

--
https://iotguru.live

Akkor még marad ez: Ez notebook, vagy szünetmentesen van? Mert akkor be lehet kapcsolni jobban a cache-t az SSD-nek, és amíg van szabad memóriád, addig elsőnek oda ír és onnan olvas. Device Manager-ben az SSD-re kattintva lehet ezeket állítani.

Alapból nincs bekapcsolva ez a jobb cache lehetőség.

Sakk-matt,
KaTT :)

Laptop. Megnézem majd, hogy mi van beállítva és ez segít-e.

Update: nem segített.

--
https://iotguru.cloud

Amennyire tudom, a 4K cluster size már eléggé régóta alapértelmezett NTFS-en, mellesleg partíció létrehozásakor lekérdezi a háttértár sector size-át, és ahhoz igazodik. Azaz 4K-s sector size-ú HDD-n sem fog 512-es cluster méretet csinálni.

A Last Access Time írása pedig leginkább az ext4-es relatime opcióhoz hasonló (lásd https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-behavior), azaz egyáltalán nem biztos, hogy van észrevehető teljesítmény romlás a fent említett use-case-ben. Másrészt Linuxon ext4-en is relatime az alapértelmezett sok disztribúcióban, szóval emiatt nem kellene lassabb legyen az NTFS az ext4-nél.

A last access time kapcsolgatása lófaszt se számít, valószínűleg HDD-n lassított valamennyit, SSD-n meg inkább csak feleslegesen öregít, mint lassít.

--
https://iotguru.cloud

Ezek szerint nem olvastad el a linket, és nem ismered a linuxos relatime beállítást sem.
A Last Access Time nem lassít, mert nem írja ki lemezre azonnal, hanem csak akkor, amikor amúgy is írna más okból. Másrészről SSD-n is lassítana, ha mindig kiírná, mert pl. Java fordításnál nem a háttértár adatátviteli sebessége számít, hanem a másodpercenként elvégezhető IO műveletek száma (iops), ami szintén korlátos.

Esetleg az NTFS partíció alignment ment félre?

--

"After successfully ignoring Google, FAQ's, the board search and leaving a undecipherable post in the wrong sub-forum don't expect an intelligent reply."

Bármi lehet, de nem gondolom, hogy így lenne. Megnézem, amint a Windows 10 alatt járok.

Update: az alignment oké.

--
https://iotguru.cloud

Az már 11+ éve (Vista óta) nem lehet probléma, hacsak nem XP alatt lett létrehozva eredetileg a partició.
--

Nekem is az a tapasztalatom, hogy ugyanazon vason, ugyanaz a projekt, ugyanazzal a toolchain-el eléggé eltérő teljesítménnyel fog fordulni Win/NTFS-en illetve Linux/ext4-en.

Egy Android-os projektünk Ubuntu-n kb 3,5 perc alatt készül el, Win-en kb 7 perc, ráadásul clean build, "bemelegítve", azaz a második clean build futást mérve. Win-en figyeltem arra, hogy a Defender és az indexelő szolgáltatás hagyja ki a projekt könyvtárat, és nem tweak-eltem semmit. RAM is van bőven, azaz az OS diszk cache-ébe is bőven befér minden.

Összességében ugyanazon a vason a Java-s fejlesztő eszközök számomra sokkal fürgébben tűnnek egy Kubuntu-n, mint Win7-en vagy Win10-en. Maga az IntelliJ IDEA is érezhetően gyorsabb. Akkus üzemidőben nem találtam észlelhető különbséget a két OS között.

Ja. Valahogy így.

--
https://iotguru.cloud

Mértem még kettőt, ha már Windows 10 alatt jártam, szóval a WSL2 azért még messze van attól, hogy értelmes munkát lehessen rábízni, különösen a meglévő NTFS drive elérése DrvFs mount használatával durva (becsatolja például a /mnt/d alá a D: meghajtót).

Windows-WSL2-ext4 (virtual-disk):

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  06:21 min
[INFO] Finished at: 2019-10-11T13:26:26Z
[INFO] ------------------------------------------------------------------------

Windows-WSL2-ntfs (DrvFs mount):

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  27:37 min
[INFO] Finished at: 2019-10-11T12:56:11Z
[INFO] ------------------------------------------------------------------------

--
https://iotguru.cloud