Üdv mindenkinek!
Számomra néhány kérdést felvető problémába ütköztem a virtualizációval kapcsolatban, ha valaki tud tapasztalatot megosztani, vagy linket küldeni nagyon megköszönöm:
Adott nálunk egy Windows Server 2008 Standard with Hyper-V rendszer, amin eddig egyetlen ugyanilyen típusú vendég rendszer futott MS SQL adatbázissal. Most mellé került egy másik vendég is, ami egy CentOS 6.2 - Firebird SQL kiszolgálóval. Szállító kérésére az adatbázis XFS file rendszert kapott a virtuális lemezre. Integrációs szolgáltatások természetesen feltelepítve. 6.3 -ra egyenlőre nem frissítek, még nem ellenőriztem, hogy támogatott-e már.
Bizonyos (szerintem) nem túl bonyolult lekérdezéseknél 30 másodpercbe telik az eredmény produkálása. Mikor fizikailag is a kiszolgáló mellett voltam, feltűnt, hogy erre a 30 másodperce folyamatosan világít a HDD led. A CentOS load értéke 0,5-nél nem ment feljebb, 2 GB RAM -ot és 2 virtuális CPU -t kapott.
Ami számomra kérdés, hogy okozhatja-e ezt a több szintű lemez cache használat. Ilyen esetben a cache kezelést hogyan lehet optimalizálni?
Virtuális gép felől indulva a Firebird-nek már adatbáziskezelő szinten vannak erre vonatkozó opciói, következő réteg az XFS filerendszer által használt cache, ami ugye egy virtuális lemezképre dolgozik és ott belép a képbe a Host rendszer NTFS cache kezelése, majd a fizikai merevlemez cache után kerül ténylegesen írásra/olvasásra az adat.
HW RAID vezérlő nincs, a Host rendszeren van software raid 1 -be konfigurálva 2 db egyforma, hétköznapi SATA merevlemez. Külön merevlemez Hyper-V-n keresztüli dedikált hozzárendelésére egyenlőre nincs mód. Rendes UPS van a gép alatt, megfelelően konfigurálva.
Eddig az XFS FAQ -ban találtam erre vonatkozóan megjegyzést, hogy talán qemu-nál van opció a cache kezelésre, de egyéb virtualizációra nem tért ki.
Ezek a beállítások érdekelnek a Win oldalról is, mivel ott 2 db NTFS van egymás alatt.
Köszönöm a hozzászólásokat előre is!
Üdv.:
gg
----------------------------------------------------------------
Megszületett a megoldás:
A Host rendszer lemezkezelőjében, a házirendek fülön be kellett pipálni az "Enable write caching" opció mellett az "Enable advanced performance" opciót is, amit az újabb rendszereken (R2/w7) már úgy hívnak, hogy "Turn off Windows write-cache buffer flushing on the device". Így a 30-40 másodperces lekérdezés lefut 2-2,5 másodperc alatt, ami teljesen elfogadható.
Köszönöm a segítséget mindenkinek!
- 5773 megtekintés
Hozzászólások
Mekkora adatbázis és biztos mindenképp XFS kell oda? Nem mintha bajom lenne vele, de adatbázis alá nem tudom mennyire jó választás.
- A hozzászóláshoz be kell jelentkezni
~20%-os teljesitmenycsokkenes terheles alatt ext4-hez kepest forras
- A hozzászóláshoz be kell jelentkezni
Valszin a 24mp-es lekérdezés futásidőtől sem lesznek boldogok. :) Azt minden esetre jó lenne tudni, hogy a diszk vagy a CPU a szűk a lekérdezésnél.
- A hozzászóláshoz be kell jelentkezni
vmstat, iostat, dstat, ami tetszik. Talalgatassal semmire se megyunk, MERJ.
Nomeg, fogadd meg az alapszabalyt: "egy meres nem meres; ket meres, fel meres"
- A hozzászóláshoz be kell jelentkezni
Illetve csináljon mérést a hoszt gépen is(cpu, lemez i/o).
- A hozzászóláshoz be kell jelentkezni
mindenkinek a szálon felfele :)
XFS a szállító kérése volt, egyáltalán nem biztos, hogy ebbe a környezetbe ez a legjobb megoldás. Nekem úgy tűnik, hogy ez az XFS dolog egy régebben rögzült dolog. De nem vagyok nagy guru.
vmstat, iostat, dstat: még nem ellenőriztem, de még ma linkelem.
Windows oldalon Hyper-V manager szerint nem ment a Centos CPU használata 5% fölé.
Resouerce monitoron 76% a Highest Active Time a lekérdezés alatt. Még utánaolvasok, hogy mi-mit jelent pontosan. A részletező listában az összes érték gyakorlatilag konstans. Olyan mint ha a vendégek erőforrás használata csak a grafikonon látszódna, a listákban nem.
- A hozzászóláshoz be kell jelentkezni
A szállítók sokmindent szoktak kérni, pont az ilyen berögzült dolgok miatt. Ezek általában arra jók, hogy ha valami gubanc van akkor az első kérdés az, hogy ezek stimmelnek-e. Ha nem stimmel, akkor rossz esetben jön a beakadt lemez effektus és képtelenek megérteni, hogy pl. egy SELECT * FROM üres eredményézéhez nemsok köze van a kernel verziónak vagy a filerendszernek.
(Már várom a kommentet, amiben épp egy pont ilyen esete volt valakinek, mert csak ott és csak akkor a csillagok, szoftverek és hardverek együttállása szerint megvadult a dbkezelő vagy más szoftver. :) )
- A hozzászóláshoz be kell jelentkezni
mivel ext4 -en bejött a sebesség növekedés ezért a mérést már ezen végeztem, noop ütemezővel:
iostat a lekérdezés alatt:
avg-cpu: %user %nice %system %iowait %steal %idle
0,40 0,00 1,53 1,79 0,00 96,28
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 3,05 130,68 11,25 167076 14378
sdb 5,40 36,98 16,03 47279 20500
sdc 6,35 38,20 13,80 48845 17640
dm-0 5,20 123,37 11,23 157730 14360
dm-1 0,25 2,01 0,00 2576 0
lekérdezés után:
avg-cpu: %user %nice %system %iowait %steal %idle
0,40 0,00 1,46 1,89 0,00 96,25
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 2,91 123,32 12,15 167076 16458
sdb 5,09 34,90 15,13 47279 20500
sdc 12,30 188,59 15,36 255509 20816
dm-0 5,10 116,42 12,13 157730 16440
dm-1 0,24 1,90 0,00 2576 0
------------------
vmstat lekérdezés alatt:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1728180 15104 192200 0 0 56 7 36 31 0 1 98 1 0
lekérdezés után:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1728188 15176 192200 0 0 55 8 36 32 0 1 98 1 0
Mond így valamit neked?
szerk.: load érték felmegy 0.94 -re a lekérdezés alatt, de a hyper-v felügylőben a processzorhasználat 0-1 % között mozog
- A hozzászóláshoz be kell jelentkezni
Az a "nem túl bonyolult query" is érdekes lehet. A firebird tapasztalatom szerint imádja a subselect-et és borzalmasan szenved a join-okkal.
Tehát egy
select a.*, b.mezo1
from a
left join b on a.mezo1=b.mezo2
helyett sokkal jobban muzsikal egy
select *, (select mezo1 from b where mezo1=a.mezo1)
from a
jellegű query. Persze ez se mindig használható, de sok esetben tapasztaltam több nagyságrend gyorsulást egy join-os query subselect-esre átírása után. Illetve indexek, stb.
Ja, és jut eszembe: egy normál (irodai) PC-re nem tudsz felhúzni virtualizáció nélkül host-ként egy centos-t, rá firebird-et és áttolni alá a komplett adatbázist? Ha ott is szenved, akkor a virtualizációt kb. kizárhatod az okok közül, de ha ott hasít, akkor az lesz a probléma.
- A hozzászóláshoz be kell jelentkezni
Ki fogom próbálni, amint lesz rá egy kis időm. Az image -ek tartalmát áthúzom fizikai gépre, és megnézem mi történik... Vagy virtuális gépet exportálok. Virtualbox szépen megeszi, egy tesztnek jó lesz.
- A hozzászóláshoz be kell jelentkezni
Én erősen Linuxozok egy 4 gépes Hyper-V clusteren, de igaz ott van egy iSCSI storage is. Azt nézd meg, hogy a CentOS milyen eszköznek látja a diszket, mert 3.4.x-el bezárólag eléggé sokat változott a Hyper-V szupport a kernelben.
Nincs igazából egyik fs sem a másik alatt, mert image file-ba dolgozik a virtuális géped alapesetben. A hoszt OS részéről egy batár file-t ír/olvas a virtualizációs réteg. A nagy kérdés itt az, hogy a megfelelő driver-ekkel használod-e a diszket vagy pedig emulációs őrület megy.
- A hozzászóláshoz be kell jelentkezni
'Azt nézd meg, hogy a CentOS milyen eszköznek látja a diszket'
Itt mire gondoltál?
hoppá, nálam Linux IC 3.2 van telepítve, emlékeim szerint ezt találtam, nem is néztem van-e frissebb.
Köszönöm a tippet!
- A hozzászóláshoz be kell jelentkezni
Van hda/sda és egyéb opció. Lehet hogy sima PIIX-es IDE diszkként kezeli a natív hyperv driver helyett. Elég jó Linux támogatást rittyentett az MS a Hyper-V-hez. Stabilan megy és még kellemesen lehet live-migrálni is.
- A hozzászóláshoz be kell jelentkezni
Na ez is érdekes:
# lspci
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA
De még jobb, hogy eddig nem néztem a dmesg kimenetét:
STORVSC: WARNING! storvsc pkt ffff88007a1c7d68 autosense data valid - len 18
storvsc: Sense Key : Illegal Request [current]
storvsc: Add. Sense: Invalid command operation code
STORVSC: WARNING! cmd 0x85 scsi status 0x2 srb status 0x86
Elindulok az integrációs szolgáltatások újratelepítésének útján.
- A hozzászóláshoz be kell jelentkezni
Fordíts egy 3.4.5-öt. :) Arra figyelj hogy a hda-ból sda lesz a bootkor, tehát a kernel rootfs legyen megfelelő és az fstab-ot állítsd át. Ha gondolod .config -ot tudok adni hozzá, amin valszin csak minimálisan kell majd szerelned (pl. XFS support nincs benne).
- A hozzászóláshoz be kell jelentkezni
:) elcsúsztunk. Amikor azt írtad, hogy 3.4.x-től felfele azt hittem, már itt tart az integrációs szolgáltatások verziószáma. De nem baj mert közben abból kijött a 3.3 ebben a hónapban. Most települ. Várom a végét.
- A hozzászóláshoz be kell jelentkezni
Kiváncsi vagyok, hogy érdemben új kernelmodulokat tesz-e fel vagy csak próbálkozik.
- A hozzászóláshoz be kell jelentkezni
Az lett a vége, hogy MS doksi szerint ellenőrizve a működést, minden rendben.
dmesg kimenetéből is eltűntek a WARNING kezdetű sorok, de az lspci kimenete:
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA
lsmod:
-----------------------------
Module Size Used by
autofs4 26888 3
sunrpc 243822 1
ipt_REJECT 2351 2
nf_conntrack_ipv4 9506 3
nf_defrag_ipv4 1483 1 nf_conntrack_ipv4
iptable_filter 2793 1
ip_tables 17831 1 iptable_filter
ip6t_REJECT 4628 2
nf_conntrack_ipv6 8748 3
nf_defrag_ipv6 12182 1 nf_conntrack_ipv6
xt_state 1492 6
nf_conntrack 79453 3 nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state
ip6table_filter 2889 1
ip6_tables 19458 1 ip6table_filter
ipv6 322029 157 ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
xfs 1042196 1
exportfs 4236 1 xfs
sg 30124 0
hid_hyperv 4209 0
hv_netvsc 23141 0
hv_utils 6085 0
microcode 112594 0
hv_timesource 1079 0 [permanent]
i2c_piix4 12608 0
i2c_core 31276 1 i2c_piix4
ext4 364410 2
mbcache 8144 1 ext4
jbd2 88866 1 ext4
sd_mod 39488 5
crc_t10dif 1541 1 sd_mod
sr_mod 16228 0
cdrom 39803 1 sr_mod
pata_acpi 3701 0
ata_generic 3837 0
hv_storvsc 10372 3
hv_vmbus 93781 5 hid_hyperv,hv_netvsc,hv_utils,hv_timesource,hv_storvsc
dm_mirror 14101 0
dm_region_hash 12170 1 dm_mirror
dm_log 10122 2 dm_mirror,dm_region_hash
dm_mod 81692 8 dm_mirror,dm_log
Ezekre a PIIX -es driverekre gondoltál feljebb, amiket az lspci továbbra is hoz?
- A hozzászóláshoz be kell jelentkezni
Nem csak, mert az lspci ugyanazt látja nálam is, viszont van egy hv_vmbus nevű "csoda", ami el is rejti a hda-t példul:
dmesg | grep hv_
[ 0.000000] DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090004 03/19/2009
[ 0.000000] Hypervisor detected: Microsoft HyperV
[ 0.000000] HyperV: features 0x67f, hints 0x2c
[ 0.182802] hv_vmbus: Hyper-V Host OS Build:7601-6.1-17-0.17514
[ 0.188079] hv_vmbus: child device vmbus_0_1 registered
[ 0.192042] hv_vmbus: child device vmbus_0_2 registered
[ 0.192771] hv_vmbus: child device vmbus_0_3 registered
[ 0.192992] hv_vmbus: child device vmbus_0_4 registered
[ 0.192992] hv_vmbus: child device vmbus_0_5 registered
[ 0.192992] hv_vmbus: child device vmbus_0_6 registered
[ 0.192992] hv_vmbus: child device vmbus_0_7 registered
[ 0.196040] hv_vmbus: child device vmbus_0_8 registered
[ 0.196576] hv_vmbus: child device vmbus_0_9 registered
[ 0.196583] hv_vmbus: child device vmbus_0_10 registered
[ 5.365559] hv_vmbus: registering driver hv_storvsc
[ 5.366848] scsi0 : storvsc_host_t
[ 5.368132] scsi 0:0:0:0: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 4
[ 5.369530] scsi1 : storvsc_host_t
[ 5.370483] scsi scan: INQUIRY result too short (5), using 36
[ 5.371339] scsi scan: INQUIRY result too short (5), using 36
[ 10.345321] hv_vmbus: registering driver hv_netvsc
[ 10.348182] sd 0:0:0:0: [sda] 266338304 512-byte logical blocks: (136 GB/127 GiB)
[ 10.349128] hv_netvsc: hv_netvsc channel opened successfully
[ 10.349938] sd 0:0:0:0: [sda] Write Protect is off
[ 10.350660] sd 0:0:0:0: [sda] Mode Sense: 0f 00 10 00
[ 10.350894] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
[ 10.360557] sda: sda1
[ 10.361867] sd 0:0:0:0: [sda] Attached SCSI disk
[ 10.349128] hv_netvsc: hv_netvsc channel opened successfully
[ 10.454651] hv_netvsc vmbus_0_10: Device MAC 00:15:5d:0a:0b:01 link state up
[ 15.465512] hv_utils: Registering HyperV Utility Driver
[ 15.466513] hv_vmbus: registering driver hv_util
[ 24.549507] hv_storvsc vmbus_0_1: cmd 0x85 scsi status 0x2 srb status 0x4
[ 34.502898] hv_storvsc vmbus_0_1: cmd 0x85 scsi status 0x2 srb status 0x4
[ 44.473935] hv_storvsc vmbus_0_1: cmd 0x85 scsi status 0x2 srb status 0x4
Ha az emulált IDE drivert használod, akkor az legalább két lapáttal levesz a teljesítményből, főleg sima SATA diszkeken.
- A hozzászóláshoz be kell jelentkezni
Hát nálam ez így ebben a formában nem....
Nálam ebből van sok az elején:
hv_storvsc vmbus_0_2: cmd 0x0 scsi status 0x2 srb status 0x84
hv_storvsc vmbus_0_2: stor pkt ffff88007af99bc0 autosense data valid - len 18
storvsc: Sense Key : Not Ready [current]
storvsc: Add. Sense: Medium not present
a vége fele már csak az első 2 sor ismétlődik 6-8 szor.
Ez mond neked valamit?
- A hozzászóláshoz be kell jelentkezni
Ilyet még nem láttam és igazából különösebb gondunk nem volt a Hyper-V-vel. A virtuális gép konfigban egyszerűen IDE diszkként adod oda a diszk image-et? Télleg érdemes lenne azt az újabb kernelt rápróbálni.
- A hozzászóláshoz be kell jelentkezni
Pont most adtam hozzá sima IDE lemezként a lemezképet, még a SCSI vezérlőt is töröltem, de nem szűntek meg az ismétlődő sorok. Korábban SCSI disk ként volt csatlakoztatva.
Mára ráhagyom. Holnap folyt. köv.
Köszönöm a segítséget!
Reggel lett :)
Friss fejjel visszapakoltam SCSI vezérlőre a virt.lemezt és eltávolítottam az üres CD/DVD meghajtót a virtuális gépből. Erre eltűntek a kérdéses hibaüzenetek a dmesg-ből.
Most XFS helyett ext4 lesz. illetve virt gép export.
- A hozzászóláshoz be kell jelentkezni
Ha a scsi vezérlőn van, akkor csak a storvsc-vel fogja enni a diszket.
- A hozzászóláshoz be kell jelentkezni
Szerintem nálad is az a gond, hogy a lemez i/o fogy el. Egyszerűen nem bírja a SATA merevlemez a kiszolgálást megfelelő időben teljesíteni.
Természetesen több oldalról megközelítheted a megoldást. Egyik, hogy magát a hosztot optimalizálod. Pl: pagefilet külön merevlemezre teszed, növeled a szabad memória méretét a nem szükséges szolgáltatások kiiktatásával(pl: indexelés). Más különösebb beállítást nem igazán tudsz tenni, illetve nem biztos, hogy nyersz a tweak programok használatával.
Optimalizálhatod kicsit a Hyper-V-t is. Használj virtuális scsi lemezt ide helyett, a vhd-k fix méretűek legyenek.
Jut eszembe még egy optimalizáció NTFS-t illetően: a stripe méret és a klaszterméret növelése. Ha a hoszton úgyis csak Hyper-V szerepkört használsz, akkor mindenképp jobban jársz.
Ennél talán fontosabb, hogy magukat a virtuális gépeket optimalizálod a virtuális környezetre. Centosnál például az IO ütemezőt tedd át noopra. Ennek oka, hogy felesleges a Centosnak is optimalizálni, ha majd a Windows úgyis a saját íze szerint átvariálja az IO kéréseket.
Másik része, hogy a másik VM-t is optimalizáld. Ha az egyik gép túl mohó, akkor könnyen megfogja a többit is. Kapcsold ki a nem szükséges szolgáltatásokat, tiltsd le a töredezettségmentesítést, kapcsold ki a windows keresőt stb. Ehhez egy jó leírás: http://msdn.microsoft.com/en-us/windows/hardware/gg463394.aspx
Az utolsó előtti pont maga a Firebird, illetve az adatbázis optimalizációja. Annyire nem ismerem a Firebird működését, de egy egész jónak tűnő leírás: http://ibexpert.net/ibe/index.php?n=Doc.Optimization Amit megtehetsz, mint üzemeltető, az az indexek beállítása és karbantartása, lekérdezések optimalizációja - ezt már előttem is írta egy kolléga. Nem tudom, hogy mennyire van lehetőséged benyúlni az adatbázis sémába, mennyire tudsz statisztikai adatokat kinyerni, milyen jellegű az adatbázis(oltp vagy adattárház).
Az utolsó pont, hogy ha elrontották/nem optimalizálták az alkalmazást, akkor megszakadhatsz, de nem lesz érdemben gyorsabb.
Természetesen mérj minden egyes változtatás előtt és után is.
- A hozzászóláshoz be kell jelentkezni
Indexelés a Hoston, és a Win guest-en is ki van kapcsolva alapból.
Mindkét vendégnél a rendszer lemezkép IDE, az adat lemezkép SCSI virtuális csatolón keresztül van felcsatolva. Az adat lemezképek FIX méretűek. Legacy network card nincs használatban sehol. A linuxon netes tippek alapján az IRQ balancer szolgáltatás le van állítva, mivel hálózati problémákat okozott. Feljebb egy hozzászólásban már írtam, hogy az integrációs szolgáltatások frissítésére rákeresek, nem vagyok benne biztos, hogy a legfrissebb van fenn. Ha lehet, akkor megy az upgrade 6.3 -ra.
'Centosnál például az IO ütemezőt tedd át noopra.'
Ezt hogyan állítom át? (persze rákeresek én is)
A firebird-re vonatkozó rész nálam nem aktuális, kompletten a szállító intézi, nem is szeretnék belefolyni és nem is lehetne.
A méréseket folyamatosan végezzük, mivel teszteljük az alkalmazást és a migrációt.
- A hozzászóláshoz be kell jelentkezni
"Ezt hogyan állítom át?"
pl:
echo noop >/sys/block/sda/queue/scheduler
- A hozzászóláshoz be kell jelentkezni
Megtörtént, köszönöm a tippet, de sajnos a problémát nem oldotta meg.
Integrációs szolgáltatások frissítésével próbálkozom jelenleg.
- A hozzászóláshoz be kell jelentkezni
"HW RAID vezérlő nincs, a Host rendszeren van software raid 1 -be konfigurálva 2 db egyforma, hétköznapi SATA merevlemez"
És ezen fut két guest, két adatbázissal.
Sanszos, hogy a diszk a szűk keresztmetszet. írásnál kb. 70-75 iops, olvasásnál kb 120-140 a határ.
Az adatbázisokban "bizonyos" lekérdezések hajlamosak nagy io terhelést generálni.
Ha a software raid1 miatt a diszkek saját cache ki van kapcsolva, akkor főleg tetű lassú az egész.
Javallott legalább egy bbwc raid vezérlő beszerzése, egy jobb fajta már a 2 sata diszkkel is "csodákat tud tenni".
Azért mérj egy ideig diszkterhelést.
- A hozzászóláshoz be kell jelentkezni
"software raid1 miatt a diszkek saját cache ki van kapcsolva"
Ezt én nem állítottam be sehol. Nem tudom, hogy Windows Server 2008 alatt ezt hogyan lehet, vagy automatikusan erre állítja, ha erre konfigurálom a lemezkezelőben?
- A hozzászóláshoz be kell jelentkezni
A lemezkezelőben megnézed a diszk tulajdonságait és a "Házirendek" (Policies) fülön lehet a diszk cache-et matatni.
Nem emlékszem, hogy raid1 létrehozásakor alapból letiltja -e a diszkek write cache-ét.
- A hozzászóláshoz be kell jelentkezni
Nálam el van szürkülve az "optimize for quick removal" opció, csak a quick performance választható + még 2 opció alatta.
- A hozzászóláshoz be kell jelentkezni
ez azt jelenti, hogy van write cache.
- A hozzászóláshoz be kell jelentkezni
Nem azért mert XFS fan vagyok (de)...
Na de ez nem volna workload függő?
A linkelt grafikon egy szintetikus teszt eredménye. Nem feltétlenül releváns az adott kérdésben.
- A hozzászóláshoz be kell jelentkezni
Ma reggel XFS -en 40 másodpercet mértem, ext4 -el lement 25 -re.
Hozzáteszem, hogy fogalmam sincs, hogy az adatbázisban mi van (index, lekérdezés amit fentebb írtak stb.)
- A hozzászóláshoz be kell jelentkezni
Szerintem egyszerűen sovány az IO/s amit bírnak a diszkek.
Viszont a fájlrendszert érdemes noatime-mal csatolni, ha nem úgy van.
Pár I/O-t lehet vele spórolni. Annyit nem ami segít rajtad :)
- A hozzászóláshoz be kell jelentkezni
Ha sovány az I/O, akkor folyamatos írás/olvasásnál is annak kellene lennie nem?
ext4 -re másolásnál 50 MB/sec
XFS -re másolásnál 35 MB/sec
adatmennyiség ~ 3 GB, néhány nagyobb file.
- A hozzászóláshoz be kell jelentkezni
Szekvenciális írás egy dolog, a random IO egy másik. Ha az ideje 90%-ában csak seek-el a vinyó, akkor máris tizedére esik teljesítmény. Ha van elég RAM, akkor az talán segíthet, a binugz kulturáltan cache-eli a firebird adatfile-okat, és legalább read esetén nem nyeszteti a vinyót, csak írja ha kell.
- A hozzászóláshoz be kell jelentkezni
Szekvenciális másolásnál: 1MB-s blokmérettel 50MB/sec 50iops körüli io terhelést jelent.
Egy sata diszk kb 70 iops-ot tud. Ha tükörben van kettő, az írásnál egy diszk teljesítményét adja. (egyszerre írja mindkettőt.)
Adatbázis random ír/olvas: 8k-32k körül szokott lenni a jellemző blokkméret ami 50iops esetén 400k-1.6MB/sec.
mivel az adatbázis sem teljesen random io-t generál, illetve az io ütemező és a diszk cache is végzi a dolgát, ezért egy SATA diszken erőteljes adatbázis io esetén 1-5Mb/sec közötti adatátvitel a jellemző, erős diszkterhelés esetén.
Nézd meg iostat-al is terhelés alatt:
pl:
iostat -xnk 5
Az r/s, w/s, await, svctm (esetleg %util) oszlopok érdekesek.
- A hozzászóláshoz be kell jelentkezni
Megoldva. Topic-ban a megoldás, hátha másnak is hasznos lehet :)
- A hozzászóláshoz be kell jelentkezni