Sziasztok!
Van két szerver, rajtuk glusterfs-el összehozott replicated tárhely. A gondom az az, hogy ha az egyik szerveren elkezdek olvasni, pl du-val számolom a méreteket, akkor keményen (40-50%) terheli a másik szervert is. Olvastam mindenféle javaslatot, pl hogy ne a fuse.glusterfs klienst használjam, hanem nfs-el csatoljam fel, de valahogy mindíg 30-50%-os terheltség körül mozgok.
Valami dirty read megoldás kellene, de erre opciót nem találtam, és mostanra sok weboldalt végigböngésztem.
Van valami tippetek?
Üdv
- 2498 megtekintés
Hozzászólások
Ezeket próbáld ki:
cluster.metadata-self-heal: off
cluster.entry-self-heal: off
cluster.data-self-heal: off
performance.cache-size: 256MB
performance.cache-refresh-timeout: 5
performance.io-thread-count: 8
cluster.readdir-optimize: on
A 4. az egy cache, értelemszerűen, default sokkal kisebb.
A cache-refresh az azt jelenti, hogy 5mpig nem olvassa újra az adatot (ez már dirty innentől)
az io-thread esetleg a sok szálon olvasás miatti lassulás ellen (ez nem biztos, hogy jó)
a readdir-optimize az is nehezen mérhető, nem vagyok biztos benne.
És ez az első 3 ami kikapcsolja a default fícsört, hogy a gluster MINDEN olvasásnál self-healt futtat, és emiatt olvassa mindkét felét a replikának.
Hátránya, hogy ha az egyik szervert leállítod, akkor az nem egyértelmű, hogy mikor kerülnek újra szinkronba, de az időzített self-heal talán akkor is sorra keríti egyszer... Ezt próbáld ki, vagy reboot után kapcsold vissza "on" ra, és triggereld a self-healt tömegesen, így:
find /mnt/gluster_mount -noleaf -print0 | xargs --null stat >/dev/null 2>/tmp/selfheal.log
Van még egy alternatíva, a geo-replication, ott az egyik fél csak slave, viszont akkor meg nem triviális az átállás, hogy rw legyen... Úgyhogy ezt én kihagytam. Kiváncsi vagyok mire jutsz!
- A hozzászóláshoz be kell jelentkezni
A jelenlegi konfig:
network.remote-dio: enable
cluster.eager-lock: enable
performance.io-cache: disable
performance.stat-prefetch: disable
performance.write-behind: disable
performance.read-ahead: disable
performance.io-thread-count: 32
performance.cache-size: 256MB
performance.cache-refresh-timeout: 4
performance.cache-max-file-size: 2MB
nfs.addr-namelookup: off
nfs.enable-ino32: on
diagnostics.client-log-level: WARNING
diagnostics.brick-log-level: WARNING
nfs.disable: off
performance.quick-read: disable
performance.nfs.quick-read: enable
performance.flush-behind: disable
cluster.choose-local: false
Kipróbálom amit javasoltál. Illetve remélem semmi olyat nem kapcsoltam be/ki amit nem kellett volna.
- A hozzászóláshoz be kell jelentkezni
Kb 25% így a terhelés a másik szerveren. Alakul de még nem tökéletes. Még restart tesztet nem csináltam.
- A hozzászóláshoz be kell jelentkezni
Amit írtál, abból úgy tűnik a self-healt nem kapcsoltad ki. A gluster default MINDEN egyes file elérésnél self-healt csinál (ami szerintem kicsit luxus, bár ...), szóval azt próbáld meg kikapcsolni, és szerintem csökken a terhelés.
- A hozzászóláshoz be kell jelentkezni
Megpróbáltam sajnos nem sok sikerrel. A helyzet változatlan, a terhelés maradt.
Options Reconfigured:
features.quota: on
cluster.readdir-optimize: on
performance.cache-refresh-timeout: 60
performance.cache-size: 262000000
cluster.data-self-heal: off
cluster.entry-self-heal: off
cluster.metadata-self-heal: off
nfs.disable: on
- A hozzászóláshoz be kell jelentkezni
történt valami előrelépés azóta?
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni