Portál AbcLinuxu, 12. května 2025 14:08
ordered
mode). Disky mají pro jistotu vypnutou "drive write cache" - zatím to nevadilo a jinak prý hrozí i totální poškození ext3 při výpadku napájení, protože mdraid+lvm neumí správně bariéry (snad opraveno v 2.6.31 ?). Server má 8GB RAM, 4G úplně volné, CPU Intel E2160, zatížení CPU do 10% (až na ten iowait, viz dále).
Momentálně zabírá IOWAIT kolem 10-25% z jednoho CPU, podle zátěže. Procento IOWAIT se zvyšovalo s roustoucím počtem db v postgresu. Pokud postgres běží, iostat
ukazuje trvale zápis asi 300 KB/s, tohle číslo v čase roste stejně s tím počtem db a iowaitem.
Jak jsem zjistil nástrojem iotop
, způsobuje tohle proces postgres: stats collector process
ve spojení s [kjournald]
. Při interaktivním sledování vyskočí ve sloupci "IO" každých 5 vteřin tyhle 2 procesy. Výstup iotop - souhrn za 60s:
Total DISK READ: 0.53 K/s | Total DISK WRITE: 1.96 M/s PID USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1983 root 0 B/s 4.26 K/s 0.00 % 18.27 % [kjournald] 23784 postgres 0 B/s 23.45 K/s 0.00 % 8.49 % postgres: stats collector process 1981 root 0 B/s 0.67 K/s 0.00 % 5.28 % [kjournald] 1984 root 0 B/s 0.07 K/s 0.00 % 1.66 % [kjournald] 1027 root 0 B/s 0 B/s 0.00 % 1.35 % [md1_raid1] 1117 root 0 B/s 3.00 K/s 0.00 % 0.77 % [kjournald]Zajímavé je tady číslo "Total DISK WRITE: 1.96 M/s", které se neshoduje s výstupem
iostat
.
Pokud na obou discích v RAIDu povolím "drive write cache", tak IOWAIT už CPU neužírá. Bojím se, že s přibývajícími databázemi bude tahle zátěž stoupat i když k tomu není důvod.
Hledal jsem řešení všude možně, ale našel jsem jen zmínku že by to mohlo souviset se souborem pgstat.stat
, který se pořád dokola zapisuje na disk, a že ho snad jde v PG 8.4 nějakým parametrem přemístit na ramdisk... U mě má ten soubor 1,4MB.
Setkal se s takovým chováním někdo? Jde tohle nějak omezit laděním nastavení postgresu? Nebo už není třeba se bát zapnout write cache?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.