[groonga-dev,01388] Re: mroongaのメモリ解放方法について

Back to archive index

磯部 和広 k-iso****@rozet*****
2013年 5月 14日 (火) 14:23:23 JST


いつもお世話になっております。

今も固まっていますが、DBサーバーに対して vmstat -S m 5 と
 5秒毎にMB単位でvmstat
をしています。

固まる直前の状況は下記でした。

1 0 1805 218 4 65 0 0 175810 10 3200 5075 1 2 88 9 0
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 1 1805 212 4 68 0 0 169622 10 2702 4784 1 2 88 9 0
1 1 1805 225 2 27 0 0 125513 18 2973 3999 1 4 88 7 0
0 1 1805 224 2 8 0 0 135282 18 3604 4440 1 4 86 10 0
0 1 1858 214 3 61 0 11 129798 10897 3625 4708 1 3 87 10 0
0 2 1858 224 3 21 0 0 108026 14 2331 3343 1 2 85 12 0
0 1 1858 212 2 32 0 0 147482 16 3240 4887 1 3 88 9 0
0 0 1858 210 2 18 0 0 145096 26 5247 5133 1 3 86 10 0

参照のSQLなので、biが物凄く高いです。
だいたい6桁ぐらいですね。

過去にさかのぼると、こんな部分がありました。

procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 1 981 223 2 17 0 0 123794 16 2818 4017 0 3 90 7 0
0 19 981 224 2 4 0 0 14959510 390 382411 321982 0 13 60 27 0
0 1 990 224 2 4 0 1 448351 1414 11224 11769 0 9 71 20 0
0 1 990 213 2 21 0 0 176772 7 4452 5075 0 7 80 12 0
0 7 990 223 2 4 0 1 5242014 693 137412 122472 0 13 60 27 0
0 1 1565 671 3 119 0 114 21346 117156 3489 1954 0 2 88 11 0
1 2 1805 443 5 508 0 48 78657 49471 5130 3117 0 2 88 10 0
1 0 1805 219 5 782 0 0 129203 0 1916 3621 1 2 89 8 0

2行目にbiが8桁の部分がありますよね。
これ、多分2桁(100)×5秒=500秒程度固まっていた部分と推測されます。

その間、siもsoも0ですがその次でswpdが9増えているので、SWAPが起きているよ
うです。

5行目も、soが1しかないのですが、その次でガツんとswpdが増えているので
こちらは本当にスラッシングしているようです。

どちらも、free, buff, cache全てが少ないので、drop_cachesは効かないと思い
ます。

普段は、下記のようにしてキャッシュクリアしているのですが・・・

sudo bash -c 'echo 1 > /proc/sys/vm/drop_caches'

sysctlのほうがスマートですね。

sudo sysctl -w vm.drop_caches=1

3は
http://pooh.gr.jp/?p=5477
>この操作を行う際は最初に sync(8) を実行しておくべきである。

とか色々脅されているので、まだ試した事はありませんでした。


現在は
 FLUSH TABLES;
 select ..;
 <中略>
 select ..;
 FLUSH TABLES;
です。

先程、またアクセス出来るようになったので、調べたら下記の状況でした。

[k-isobe @ PMJ01 corpus]$ cat /proc/meminfo
MemTotal: 32789460 kB
MemFree: 226916 kB
Buffers: 5132 kB
Cached: 75972 kB
SwapCached: 86600 kB
Active: 29857504 kB
Inactive: 2330188 kB
Active(anon): 29824912 kB
Inactive(anon): 2285876 kB
Active(file): 32592 kB
Inactive(file): 44312 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 33554424 kB
SwapFree: 30159192 kB
Dirty: 40 kB
Writeback: 0 kB
AnonPages: 32021008 kB
Mapped: 9924 kB
Shmem: 3488 kB
Slab: 61628 kB
SReclaimable: 12176 kB
SUnreclaim: 49452 kB
KernelStack: 2416 kB
PageTables: 78984 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 63064936 kB
Committed_AS: 38332752 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 607760 kB
VmallocChunk: 34359125496 kB
HardwareCorrupted: 0 kB
AnonHugePages: 6440960 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 8192 kB
DirectMap2M: 33462272 kB
[k-isobe @ PMJ01 corpus]$




groonga-dev メーリングリストの案内
Back to archive index