2007. november 29., csütörtök
Kapcsolódás az adatbázishoz, fájl tárolás tesztelése
„keep_duplicates” / „deduplicate” – az azonos tartalmú fájlokat elmentse-e még egyszer, vagy csak egy mutatót használjon helyette
„cache” / „nocache” – a gyorsítás érdekében tegye-e gyorsítótárba a legutóbb használt adatokat, vagy sem
„compress” / „nocompress” – helymegtakarítás érdekében tömörítse-e a fájlokat
A program futása közben létrehoz egy táblát, amibe véletlenszerűen generált fájlokat illeszt be, majd visszaolvassa azokat, végül kiírja a kérés kiadását követő és a feladat végrehajtás utáni idő különbségét, vagyis leméri a folyamat válaszidejét.
A teszt kimutatta, hogy a fájltárolás hatékonyságának növelésével jelentősen növekszik a fájl lementési ideje, kiolvasáskor azonban nem számottevők a különbségek. Tárhely takarékossági szempontból tehát mindenképp ajánlott a duplikációk szűrése, a gyorsítótár használata, valamint a tömörítés alkalmazása. Így az azonos fájlokat nem szükséges többször tárolni, elég csak mutatóval hivatkozni rájuk, a gyakran használt fájlok elérési ideje a gyorsítótár révén lecsökken, valamint az adatblokkok kihasználtsága is növekszik a tömörítés áltál.
Az adatbázishoz kapcsolódó program elkészítésének menete itt olvasható.
A teszteléshez az adattáblában LOB-okat, vagyis nagy objektumokat hozunk létre, melyeket SecureFile-ként tárolunk. Dokumentáció szerint a LOB (Large Object) nagyméretű adatok tárolására létrehozott adattípus, az adatbázis konfigurációjától függően 8TB – 128TB maximális adat tárolására képes.
Példaképp egy adattábla létrehozása magas szintű tömörítést használva a következőképp történik:
CREATE TABLE t1 ( a CLOB)
LOB(a) STORE AS SECUREFILE (
COMPRESS HIGH
CACHE
);
A LOB-okról és a SecureFile-okról további információk az alábbi oldalakon érhetők el:
Introduction to Large Objects
Using Oracle SecureFiles
2007. november 9., péntek
Linuxos naplózó fájlrendszerek sebességtesztje
A teszt során négyféle Linuxos naplózó fájlrendszeren (EXT3, ReiserFS, JFS, XFS) végeztem sebességméréseket az IOzone nevű fájlrendszer tesztelő program segítségével. A program kifejezetten fájlrendszerek tesztelésére optimalizált, vagyis az eredmények nem a merevlemez adatátviteli sebességét tükrözik, hanem adott konfiguráció mellett az egyes fájlrendszerek teljesítményét mutatják. Mindegyik fájlrendszer azonos méretű, fizikailag egymást követő, egyenként 9GB méretű partíciókon kapott helyet, melyek a tesztprogramon kívül más adatot nem tartalmaztak.
A teszt négyféle sebesség mérésére terjedt ki, melyek a következők voltak: írás és újraírás, valamint véletlenszerű írás és véletlenszerű olvasás sebessége. A véletlenszerű írás/olvasás esetében nem a teljes fájlt, hanem annak véletlenszerűen kiválasztott rekordjait írja/olvassa a program, amely így egy adatbázis kiszolgáló háttértár működését szimulálja. Az első körben többféle rekordmérettel (4KByte – 16MByte), valamint különböző méretű fájlokkal (64KBbyte – 512MByte) végeztem méréseket. Mivel ekkora fájlok még beleférnek az operációs rendszer gyorsítótárába, így ez a teszt nem a tényleges lemezműveleti sebességeket mutatja, viszont jól tükrözi az egyes fájlrendszerek sebességviszonyait.
A mérések rámutattak, hogy az EXT3 fájlrendszer írási sebessége jelentősen alulmarad a másik három fájlrendszerhez képest, melyeken az írás több mint kétszer gyorsabban zajlik, ez a különbség azonban valamelyest csökken az újraolvasás vizsgálatánál. Ezen felül a másik három fájlrendszer teljesítménye sokkal kiegyensúlyozottabb, lényegesen kevesebb a sebességbeli ingadozás. Megfigyelhetjük, hogy adott konfiguráció esetén a legnagyobb sebességet a 128KByte-os rekordok esetén érjük el (adatok a leni táblázatban). Legszembetűnőbben ez a ReiserFS fájlrendszernél látszik, ahol ez az adatátviteli sebesség háromszorosa, illetve kétszerese a 4KByte-os, illetve 8KByteos rekordok esetén mért átviteli sebességnek. Ez a jelenség a kisebb rekordok magasabb fajlagos beviteli költségének tudható be.
Átlagsebességek 128KByte rekordméretnél | ||||
| EXT3 MB/s | RFS MB/s | JFS MB/s | XFS MB/s |
Írás | 277,57 | 611,99 | 619,30 | 611,62 |
Arányok | 44,82% | 98,82% | 100% | 98,76 |
Véletlenszerű írás esetén a sebességviszonyok a következőképp alakultak: Szintén a JFS végzett az élen, amelyet a ReiserFS, majd az XFS követett 10, illetve 20%-os lemaradással. A sort ismét az EXT3 zárta, azonban a sebessége itt már megközelíti a JSF sebességének 70%át. Véletlenszerű írás során a legnagyobb átviteli sebességek 32KByte-os rekordméretet használva adódtak, az ekkor mért adatokat az alábbi táblázat foglalja össze:
Átlagsebességek 32KByte rekordméretnél | ||||
| EXT3 MB/s | RFS MB/s | JFS MB/s | XFS MB/s |
Véletlenszerű írás | 1011,76 | 1319,7 | 1454,09 | 1182,1 |
Arányok | 69,58% | 90,76% | 100% | 81.29% |
A teszt második felében egy, az operációs rendszer gyorsítótáránál nagyobb méretű fájllal végeztem a méréseket, fix rekordméret mellett. Ezzel elkerülhető volt, hogy a teszt folyamán a teljes fájl a fizikai memóriába kerüljön, felgyorsítva a műveletek sebességét, így valós képet kaphatunk a fájlrendszerek közti tényleges teljesítménybeli különbségekről. Az eredményeket az alábbi táblázat foglalja össze.
Sebességmérés 128KByte rekordmérettel, 3GByte-os fájllal MB/s | ||||
| EXT3 | RFS | JFS | XFS |
Írás | 29,58 | 29.79 | 33,93 | 31,89 |
Újraírás | 29,11 | 30,1 | 36,15 | 32,13 |
Véletlenszerű olvasás | 18,29 | 19,09 | 19,5 | 18,375 |
Véletlenszerű írás | 17,84 | 38.39 | 36,95 | 31,03 |
Szekvenciális írás esetén a másik három fájlrendszer sebessége valamivel elmarad a JFS 33,93 MB/s-os értékétől, a legkisebb sebességű EXT3 fájlrendszerhez képest ez 14,7%-kal nagyobb sebességet jelent. Újraírás esetén ez a különbség még számottevőbb, 24,2%-os. Véletlenszerű olvasás és írás esetén értelem szerűen a sebességek a legtöbb esetben drasztikusan csökkennek. Meglepő lehet azonban, hogy a véletlenszerű írás sebessége a véletlenszerű olvasásénál két fájlrendszer esetében is jóval nagyobb értékeket mutat. Ez annak a következménye lehet, hogy írás esetén nem közvetlenül a merevlemezre történik az írás, hanem a rendszermemóriába, kiolvasáskor pedig a véletlenszerűen választott rekordok, igen kis valószínűséggel lesznek benne a gyorsítótárban. A JFS fájlrendszer, igaz csak 6,6%-kal a véletlenszerű olvasás esetén is megőrzi vezető pozícióját, azonban a véletlenszerű olvasásnál már az RFS fájlrendszer nyújtotta a legnagyobb sebességet, több mint kétszer gyorsabbnak bizonyult a leglassabb EXT3 fájlrendszernél.
A teszt rámutatott arra, hogy általánosságban JFS, vagy ReiserFS fájlrendszereket érdemes használni, mivel ez a két fájlrendszer nyújtja összességében a legnagyobb sebességeket. Kerülni kell azonban adatbázis kiszolgáló esetén az EXT3 fájlrendszer alkalmazását annak gyenge véletlenszerű íráskor nyújtott teljesítménye miatt.
2007. november 7., szerda
Sikeres telepítés, fájlrendszer teszt
2007. október 27., szombat
Újabb telepítési kísérletek:
A kezdetek:
Bemutatkozás, téma leírása:
Üdvözlök minden kedves látogatót! Nevem Papp Gábor, a Budapesti Műszaki és Gazdaságtudományi Egyetem negyedéves villamosmérnök hallgatója vagyok. Ezt a blogot abból a célból hoztam létre, hogy az infokommunikációs laboratórium című tárgy keretén belül választott témámat ilyen formában is dokumentáljam, a félév során végzett munkámat közzétegyem, az eredményeimről beszámoljak. Választott témám az "Adatbázis alapú fájltárolás", amelynek során többféle fájlrendszeren fogom tesztelni a különböző méretű és mennyiségű fájlok hozzáférési idejét és másolási sebességét.