Üdvözöllek kedves Látogató!
Az előző postban az RTLinux kernel sajátosságaival foglalkoztam, és ígértem, hogy valami közérthetőbb formában bemutatom a gyakorlatban mit is jelent mindez.
A teszt alanya egy Intel D525MW alaplap. Nagyon sokan dícsérik, nagyszerű kis cucc.
Amit érdemes tudni a "deszkáról" :
- Mini-ITX méretű alaplap (170mm X 170mm)
- Passzív hűtés - nincs hangos, zörgő, beálló ventillátor
- Intel Atom 252 processzor
- Egy LPT port és egy PCI kártyahely - ideális kisebb LPT portos géphez, de akár a Mesa 5i25 kártyát is használhatjuk
- Egy rakat USB port, alaplapi VGA, max. 4GB RAM
A leendő vezérlés másik fontos eleme a Kingston 8GB SSD lemez:
Jelentősen gyorsabb mint a hagyományos merevlemezek, nincs mozgó alkatrész, kis helyen elfér és a kapacitása is bőven elég egy jó kis LinuxCNC rendszerhez. A gyári CD-ről a már részletezett módon istalláltam az alaprendszert, majd volt egy uprade, egy két kisebb kényelmi dolog (Chromium böngésző, Midnight Commander) és még alig léptem túl a 4GB-t.
Ezt a konfigurációt a Pico PSU fogja teljessé tenni. A PC-s oldali konfiguráció így kis helyen elfér, üzembiztos és hatékony minden szempontból.
Akkor nézzük mit mutatnak sorban a késleltetési tesztek. Minden tesztet úgy futtattam, hogy ment egy Youtube-os (kötelezően CNC témájú) videó a Firefoxban, hasonlóan a Chromiumban is ment egy videó, a glxgears nyomta a 3D grafikát. Jelenleg 2GB RAM van az alaplapon.
Ahogy azt említettem, a Multithread (többszálú futtatás) funkcionalitást le kell tiltani a BIOS-ban a valós idejű feldolgozás érdekében. De azért nézzük mit mutat a teszt bekapcsolt Multithread mellett:
Természetesen itt még nincs dedikálva egyik processzornak a valós idejű feldolgozás (isolcpus=1 kernel paraméter jelentené azt). Amit érdemes megfigyelni: a Multithread miatt négy proci látszik, és nagyjából mindegyik hasonló leterheltséget mutat. Eddig ez nem annyira izgalmas, a lényeg inkább a késleltetési teszt eredménye:
a jitter 37,8 microszekundum. Ez nem olyan rossz, de jelentősen lehet rajta javítani.
Akövetkező eset, amikor nincs Multithread:
Érdekes, hogy a késleltetési teszt még rosszabb eredményt hozott. Itt már csak két CPU látszik, de még mindig nincsenek leválasztva a valós idejű folyamatok.
És most vessünk egy pillantást arra, amiért az egész kernel tuningra szükség volt:
Jitter: 6,7 és 8,2 mikroszekundum !!! Ez már úgy történt, hogy a boot folyamat elején a kernel az isolcpus=1 paramétert megkapta, így a legnagyobb számú processzor a valós idejű feladatokkal foglalkozik csak. Igaz a CPU1 ki van hajtva majdnem 100%-ra, de ettől nekünk a LinuxCNC vígan elmegy böngészés és minden más feladat mellett.
A teljesség kedvéért legyen itt annak a tesztnek az eredménye, amikor bekapcsolt Multithread funkcionalitásnál lefoglaltam egy CPU-t a valós idejű feladatokra:
Jól látszik ismét, hogy négy CPU dolgozik, de ha egyik csak a valós idejű feladatokkal van lefoglalva, akkor a nagy pontosságot igénylő léptetési frekvenciát duplájára lehet felvinni.
Akit esetleg érdekel, további teszteket itt lehet megtekinteni.
A végére még egy megjegyzés ami a kernel témaköréhez tartozik:
Nincs "gyári" 64 bites kernel a LinuxCNC-hez, nem is tervezik annak kiadását, ugyanis semmiféle haszonnal nem járna a CNC vezérlés szempontjából. Használd bátran a 32 bites verziót, egy megfelelő alaplappal és jó beállításokkal bőven elég.