2014-11-21
HugePages は free コマンドで見ると used に計上される(2)
HugePages は free コマンドで見ると used に計上される - ablog で Huge Page は確保されるとOSカーネル内に確保され、free コマンドの used に計上されることを確認した。
今回はユーザプロセスが Huge Page を使用している時も used に計上されることを確認した。ちょっと検証の精度が怪しいので、後日ちゃんと調べる予定。
まず、Huge page を使用していない状態
# sysctl -w vm.nr_hugepages=0 vm.nr_hugepages = 0 # free -m total used free shared buffers cached Mem: 15779 1741 14038 0 42 804★ -/+ buffers/cache: 895★ 14884 Swap: 7895 0 7895 # cat /proc/meminfo MemTotal: 16158544 kB MemFree: 14373768 kB Buffers: 43660 kB Cached: 823360 kB SwapCached: 0 kB Active: 708308 kB Inactive: 769356 kB Active(anon): 610924 kB Inactive(anon): 117960 kB Active(file): 97384 kB Inactive(file): 651396 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 8085500 kB SwapFree: 8085500 kB Dirty: 784 kB Writeback: 0 kB AnonPages: 610960 kB Mapped: 300480 kB Shmem: 118236 kB Slab: 73432 kB SReclaimable: 32620 kB SUnreclaim: 40812 kB KernelStack: 3128 kB PageTables: 34104 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 16164772 kB Committed_AS: 2302772 kB VmallocTotal: 34359738367 kB VmallocUsed: 382868 kB VmallocChunk: 34359348048 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 ★huge page は使われていない HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 8388 kB DirectMap2M: 16459776 kB
vm.nr_hugepages を 200 に設定すると、used が増える
# sysctl -w vm.nr_hugepages=200 vm.nr_hugepages = 200 # free -m total used free shared buffers cached Mem: 15779 2144 13635 0 42 803★ほぼ変化なし(+1MB) /+ buffers/cache: 1297★400MB増加 14482 Swap: 7895 0 7895 # cat /proc/meminfo MemTotal: 16158544 kB MemFree: 13962992 kB Buffers: 43828 kB Cached: 823328 kB SwapCached: 0 kB Active: 710236 kB Inactive: 769324 kB Active(anon): 612672 kB Inactive(anon): 117904 kB Active(file): 97564 kB Inactive(file): 651420 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 8085500 kB SwapFree: 8085500 kB Dirty: 168 kB Writeback: 0 kB AnonPages: 612408 kB Mapped: 301776 kB Shmem: 118176 kB Slab: 73324 kB SReclaimable: 32864 kB SUnreclaim: 40460 kB KernelStack: 3120 kB PageTables: 34120 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 15959972 kB Committed_AS: 2306196 kB VmallocTotal: 34359738367 kB VmallocUsed: 382868 kB VmallocChunk: 34359348048 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 200 ★huge page が 200 個確保されている HugePages_Free: 200 ★200個全てまだ使われていない HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB ★huge page 1つのサイズは 2MB DirectMap4k: 8388 kB DirectMap2M: 16459776 kB
共有メモリを Huge page で使用するプログラムを実行する
# gdb ./hugepage-shm GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6) Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/yazekats/Documents/github/yoheia/misc/hugepage_test/hugepage-shm...done. (gdb) b 89 Breakpoint 1 at 0x40086f: file hugepage-shm.c, line 89. (gdb) run Starting program: /home/yazekats/Documents/github/yoheia/misc/hugepage_test/hugepage-shm shmid: 0x120023 shmaddr: 0x2aaaaac00000 Starting the writes: ................................................................................................................................................................................................................................................................ Breakpoint 1, main () at hugepage-shm.c:89 89 dprintf("Done.\n"); Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6.x86_64 (gdb)
used に計上されたままで、cached は増えていない
# free -m total used free shared buffers cached Mem: 15779 2174 13605 0 43 818★ほぼ変化なし(+15MB) -/+ buffers/cache: 1312★+15MB 14467 Swap: 7895 0 7895 # cat /proc/meminfo MemTotal: 16158544 kB MemFree: 13932904 kB Buffers: 44756 kB Cached: 837832 kB SwapCached: 0 kB Active: 726956 kB Inactive: 781296 kB Active(anon): 626508 kB Inactive(anon): 124484 kB Active(file): 100448 kB Inactive(file): 656812 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 8085500 kB SwapFree: 8085500 kB Dirty: 1400 kB Writeback: 0 kB AnonPages: 626264 kB Mapped: 306720 kB Shmem: 124824 kB Slab: 73644 kB SReclaimable: 33084 kB SUnreclaim: 40560 kB KernelStack: 3136 kB PageTables: 35064 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 15959972 kB Committed_AS: 2339268 kB VmallocTotal: 34359738367 kB VmallocUsed: 382880 kB VmallocChunk: 34359348048 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 200 HugePages_Free: 72 ★128個の huge page が使われている HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 8388 kB DirectMap2M: 16459776 kB
プログラムを終了すると
(gdb) quit A debugging session is active. Inferior 1 [process 3981] will be killed. Quit anyway? (y or n) y
# free -m total used free shared buffers cached Mem: 15779 2186 13593 0 47 830★ほぼ変化なし(+12MB) -/+ buffers/cache: 1308★ほぼ変化なし 14471 Swap: 7895 0 7895 # cat /proc/meminfo MemTotal: 16158544 kB MemFree: 13915492 kB Buffers: 48328 kB Cached: 854604 kB SwapCached: 0 kB Active: 725872 kB Inactive: 799912 kB Active(anon): 623680 kB Inactive(anon): 122400 kB Active(file): 102192 kB Inactive(file): 677512 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 8085500 kB SwapFree: 8085500 kB Dirty: 2696 kB Writeback: 0 kB AnonPages: 623452 kB Mapped: 304164 kB Shmem: 122724 kB Slab: 74388 kB SReclaimable: 33664 kB SUnreclaim: 40724 kB KernelStack: 3096 kB PageTables: 34804 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 15959972 kB Committed_AS: 2345268 kB VmallocTotal: 34359738367 kB VmallocUsed: 382880 kB VmallocChunk: 34359348048 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 200 HugePages_Free: 72 ★128MBは使われたまま? HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 8388 kB DirectMap2M: 16459776 kB
トラックバック - http://d.hatena.ne.jp/yohei-a/20141121/1416560377
リンク元
- 144 https://www.google.co.jp/
- 60 http://www.google.co.jp/url?url=http://d.hatena.ne.jp/yohei-a/20090826/1251294376&rct=j&frm=1&q=&esrc=s&sa=U&ei=PP5uVMTFKILPmwXDo4LADw&ved=0CD4QFjAH&usg=AFQjCNF0j_o3eXtZnRjZzuYyVBS37sillw
- 41 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=12&ved=0CCcQFjABOAo&url=http://d.hatena.ne.jp/yohei-a/20090616/1245121792&ei=VQBvVIniJMaZmwWHt4Fo&usg=AFQjCNGytOw7-1mU56bvb3no0uQKvKO8wg&bvm=bv.80185997,d.dGY
- 32 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=6&ved=0CEoQFjAF&url=http://d.hatena.ne.jp/yohei-a/20100129/1264738854&ei=cQNvVPyFKuLemAX5u4GQDA&usg=AFQjCNHCyKax11178az0a0vHolN52sAxeA
- 27 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCgQFjAB&url=http://d.hatena.ne.jp/yohei-a/20101215/1292429813&ei=GQFvVK7iH4i0mwWVxIBQ&usg=AFQjCNG_XWm0Sh58dilHXl7zIwTiW3Ywuw&bvm=bv.80185997,d.dGY
- 21 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CCwQFjAC&url=http://d.hatena.ne.jp/yohei-a/20110124/1295887695&ei=LAFvVJqBL6bYmAXCgIGoBg&usg=AFQjCNFv8EP3CmFNSVQ4N6KNXbrzD0KJFA&bvm=bv.80185997,d.dGY&cad=rja
- 15 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CDoQFjAE&url=http://d.hatena.ne.jp/yohei-a/20100131/1264887256&ei=ygNvVK6gNMPvmAXJv4DADA&usg=AFQjCNHRU6S4gMCsOo0Oi2UFtBjojNuRBQ
- 8 http://pipes.yahoo.com/pipes/pipe.info?_id=8dda7c5265619c2fb368495a3d11b784
- 7 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&ved=0CEEQFjAF&url=http://d.hatena.ne.jp/yohei-a/20100203/1265159410&ei=-_5uVPz_FqWzmAXe-YKwBg&usg=AFQjCNH8JMjIPI4euEBvHJ7G_bEfJuWpTA
- 6 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&ved=0CG8QFjAH&url=http://d.hatena.ne.jp/yohei-a/20130214/1360817149&ei=5RFvVKmaE8bEmwXBloLwCQ&usg=AFQjCNFPlx8O1ki4XHNskpM3-aWfjNcfvQ&bvm=bv.80185997,d.dGY
おとなり日記
- 2014-11-17 シンプルに日記 3/17 17%
- 2014-11-17 猫とC#について書くmatarilloの雑記 4/65 6%
- 2014-11-17 つれづれ日記 6/112 5%