Kedves Fórumozók!
Az egyik új gépemen LVM cache-et szeretnék használni, amelyhez az alapvetésként elolvastam ezt a leírást:
http://blog-vpodzime.rhcloud.com/?p=45
A egy Mac Mini, i7-es procival, 16 GB memóriával, és egy 256 GB-os Samsung SSD-vel, valamint egy 1 TB-os WD Black HDD-vel.
A gépre LVM-re telepítettem Linux-ot.
Az SSD került a /dev/sdb helyre, a HDD pedig a /dev/sda eszköznéven érhető el.
Fizikai (GUID) partíciók:
SSD:
/dev/sdb1 EFI System
/dev/sdb2 (korábban /dev/sda3) Linux LVM
HDD:
/dev/sda1 Linux LVM
Az LVM-ben, az SSD-n hoztam létre a root fájlrendszert, míg a home-ot és a swap-et a HDD-n.
A home-ot szerettem volna az SSD segítségével cached logikai kötetté (LV) alakítani.
A múvelet sikeres volt, az alábbi parancsokat használtam:
root@mac-mini:~# lvcreate --type cache -L 60G -n home-lv-cache /dev/mac-mini/home-lv /dev/sdb3
root@mac-mini:~# lvconvert --cachemode writeback /dev/mac-mini/home-lv
A problémám az, hogy bár az LVM cache már létrejött, meglehetősen lassú annak ellenére, hogy writeback-módra állítottam a cache-elési üzemmódot:
root@mac-mini:~# dd if=/dev/zero of=/root/zerofile bs=1M count=4096
4096+0 beolvasott rekord
4096+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 8,38914 s, 512 MB/s
root@mac-mini:~# dd if=/dev/zero of=/home/janos/zerofile bs=1M count=4096
4096+0 beolvasott rekord
4096+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 39,6725 s, 108 MB/s
root@mac-mini:~#
Mi lehet a gond? Hol ronthattam el?
- 1585 megtekintés
Hozzászólások
A jelek szerint pedig jól létrejött a cache, és az SSD-n van:
root@mac-mini:~# pvdisplay -m
--- Physical volume ---
PV Name /dev/sdb3
VG Name mac-mini
PV Size 225,00 GiB / not usable 4,00 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 57599
Free PE 37095
Allocated PE 20504
PV UUID akmrEP-LJDv-JjEJ-xAsP-jeN1-BQy4-T5As1U
--- Physical Segments ---
Physical extent 0 to 5119:
Logical volume /dev/mac-mini/root-lv
Logical extents 0 to 5119
Physical extent 5120 to 5131:
Logical volume /dev/mac-mini/lvol0_pmspare
Logical extents 0 to 11
Physical extent 5132 to 5143:
Logical volume /dev/mac-mini/home-lv-cache_cmeta
Logical extents 0 to 11
Physical extent 5144 to 20503:
Logical volume /dev/mac-mini/home-lv-cache_cdata
Logical extents 0 to 15359
Physical extent 20504 to 57598:
FREE
--- Physical volume ---
PV Name /dev/sda1
VG Name mac-mini
PV Size 931,51 GiB / not usable 4,69 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 238466
Free PE 172418
Allocated PE 66048
PV UUID HMFLJI-FZe3-5YZn-ez0H-NlIk-yoGy-BsjD6s
--- Physical Segments ---
Physical extent 0 to 2047:
Logical volume /dev/mac-mini/swap-lv
Logical extents 0 to 2047
Physical extent 2048 to 66047:
Logical volume /dev/mac-mini/home-lv_corig
Logical extents 0 to 63999
Physical extent 66048 to 238465:
FREE
Nyilván értem, hogy a cache elsősorban olvasásra való, de azt hittem, hogy esetleg az írási műveleteket is tudja gyorsítani.
Olvasásra nézve a következő adatokat kapom:
root@mac-mini:~# dd if=/root/zerofile of=/dev/null
8388608+0 beolvasott rekord
8388608+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 4,96975 s, 864 MB/s
root@mac-mini:~# dd if=/home/janos/zerofile of=/dev/null
8388608+0 beolvasott rekord
8388608+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 5,2344 s, 821 MB/s
root@mac-mini:~#
Mondjuk valóban, így már nem néz ki a dolog olyan rosszul, de lehet, hogy nem nullás fájlokkal kellene próbálkoznom...
Illetve lehet, hogy a különböző in-memory cache-ek is beleszólnak ebbe az eredménybe.
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 14.2 | 4.4.37-janos
- A hozzászóláshoz be kell jelentkezni
Véletlenszerű adatokkal:
root@mac-mini:~# dd if=/dev/urandom of=/home/janos/testfile bs=1M count=4096
4096+0 beolvasott rekord
4096+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 226,788 s, 18,9 MB/s
root@mac-mini:~# dd if=/dev/urandom of=/root/testfile bs=1M count=4096
4096+0 beolvasott rekord
4096+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 224,24 s, 19,2 MB/s
A visszaolvasás:
root@mac-mini:~# dd if=/home/janos/testfile of=/dev/null
8388608+0 beolvasott rekord
8388608+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 5,1045 s, 841 MB/s
root@mac-mini:~# dd if=/root/testfile of=/dev/null
8388608+0 beolvasott rekord
8388608+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 6,18024 s, 695 MB/s
Ugyanez a memória cache-ek kiürítése után:
root@mac-mini:~# echo 3 > /proc/sys/vm/drop_caches
root@mac-mini:~# dd if=/root/testfile of=/dev/null
8388608+0 beolvasott rekord
8388608+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 7,95331 s, 540 MB/s
root@mac-mini:~# dd if=/home/janos/testfile of=/dev/null
8388608+0 beolvasott rekord
8388608+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 10,1051 s, 425 MB/s
root@mac-mini:~#
Összességében tehát a cache előnye íráskor nem jelenik meg, ellenben olvasáskor elég rendesen.
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 14.2 | 4.4.37-janos
- A hozzászóláshoz be kell jelentkezni
Véletlenszerű adatokkal:
root@mac-mini:~# dd if=/dev/urandom of=/home/janos/testfile bs=1M count=4096
4096+0 beolvasott rekord
4096+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 226,788 s, 18,9 MB/s
root@mac-mini:~# dd if=/dev/urandom of=/root/testfile bs=1M count=4096
4096+0 beolvasott rekord
4096+0 kiírt rekord
4294967296 bájt (4,3 GB, 4,0 GiB) másolva, 224,24 s, 19,2 MB/s
Ennek mi értelme van?
Azt ugye tudod, hogy vvel nem random-io-t tesztelsz, hanem a randomgenerátorod sebességét?!
- A hozzászóláshoz be kell jelentkezni
Szia Gyu!
Most komolyan... :P
Nyilván tisztában vagyok vele, hogy ez nem random IO, hanem szekvenciális.
Az volt az értelme, hogy még véletlenül sem zavarhasson be az, hogy 4 GB-nyi nulla bájtot írok ide-oda.
Továbbá itt nyilván nem a kiírás sebessége volt az érdekes, hanem az általam végrehajtott lépések visszaellenőrzése/reprodukálása végett hagytam bent a hozzászólásomban.
Üdv:
János
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 14.2 | 4.4.37-janos
- A hozzászóláshoz be kell jelentkezni
Szia Wow!
Engem erdekele a sebessege is, de az urandom-bol tobb nem fog kijonni.
Az iras eseten letrejovo sebesseget is meg tudnad merni? Nagyon erdekel es erdekes lenne.
- A hozzászóláshoz be kell jelentkezni
Szia!
Az uramdom-os kiírással nem az LVM cache sebességét akartam mérni. Egyszerűen azért van ott, mert szemléltetni akartam, hogy mit és hogyan használtam, és olvastatok vissza később.
Az írási sebesség pedig a topicnyitóban van benne: akkor 108 MB/s-ot mértem szekvenciális írásra.
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 14.2 | 4.4.37-janos
- A hozzászóláshoz be kell jelentkezni
Tudom, olvastam, az urandom nem sebességre jó.
Köszönöm a választ. Akkor nem történ változás a sebességben.
Nem kellene a writeback módban az írást is gyorsítania a cache területnek legalább valameddig?
- A hozzászóláshoz be kell jelentkezni
Igen kellene, de valamiért az lvconvert-es megoldás nem működik nekem, a cache nem lesz writeback-es: http://hup.hu/node/152068?comments_per_page=9999#comment-2066897
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 14.2 | 4.4.37-janos
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Kicsit érdekes mondjuk, hogy miért nem működik a cache mód beállítása:
root@mac-mini:~# lvs -o+cache_mode,cache_settings /dev/mac-mini/home-lv
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert CacheMode CacheSettings
home-lv mac-mini Cwi-aoC--- 250,00g [home-lv-cache] 45,35 15,89 0,00 writethrough
root@mac-mini:~# lvconvert --cachemode writeback /dev/mac-mini/home-lv
root@mac-mini:~# lvs -o+cache_mode,cache_settings /dev/mac-mini/home-lv
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert CacheMode CacheSettings
home-lv mac-mini Cwi-aoC--- 250,00g [home-lv-cache] 45,35 15,89 0,00 writethrough
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 14.2 | 4.4.37-janos
- A hozzászóláshoz be kell jelentkezni
Végül sikerült megoldani a problémát.
Az lvm2 csomaggal volt a probléma, mert a Slackware 14.2-ben levő lvm2-2.02.154 csomaggal ez nem megy.
Egyes helyeken olvastam, hogy lvm2-2.02.155+ verzión már jól működik a művelet.
Végül a slackware-currentből töltöttem le a frissebb lvm2-2.02.168-as verzió build scriptjét, majd készítettem belőle csomagot.
A frissítés után a művelet sikeresen zárult:
root@mac-mini:~# lvchange --cachemode writeback mac-mini/home-lv
root@mac-mini:~# lvs -o+cache_mode mac-mini/home-lv
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert CacheMode
home-lv mac-mini Cwi-aoC--- 250,00g [home-lv-cache] [home-lv_corig] 49,78 23,83 95,97 writeback
root@mac-mini:~#
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 14.2 | 4.4.37-janos
- A hozzászóláshoz be kell jelentkezni
Kis extra infó:
Slackware 14.2 és current alatt, a frissen létrehozott cache LV csak a következő rebootig marad élve, utána az LV aktiválása már nem sikerül, mivel hiányzik az /usr/sbin/cache_check bináris a rendszerről, és egyik gyári csomag sem tartalmazza.
Amennyiben az ember nem a root fájlrendszerét alakította cache-elté, akkor szerencséje van, mert elég csak letöltenie, lefordítania és telepítenie a thin-provisioning-tools csomagot, amelynek telepítése után már rendben sikerül aktiválni a cache LV-t.
Részletek itt: http://www.linuxquestions.org/questions/slackware-14/usr-sbin-cache_che…
Amennyiben a root van cache-elve, akkor az lvm2 csomagot meg kell patch-cselni, telepíteni kell az thin-provisioning-tools, az mkinitrd scriptet pedig úgyszintén patch-cselni, majd végül initrd-t újragenerálni, és élesíteni.
Részletek itt: http://majek.mamy.to/en/dm-cache-in-slackware/
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 14.2 | 4.4.37-janos
- A hozzászóláshoz be kell jelentkezni
Ez csunya.
- A hozzászóláshoz be kell jelentkezni