Hatena::ブログ(Diary)

ablog このページをアンテナに追加 RSSフィード Twitter

2014-08-31

xentop コマンドで DomU のCPU使用率を調べる

xentop コマンドで DomUCPU使用率を調べる。

# xentop -fb -d 5                                                                                                                               
      NAME  STATE   CPU(sec) CPU(%)     MEM(k) MEM(%)  MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS   VBD_OO   VBD_RD   VBD_WR  VBD_RSECT  VBD_WSECT SSID
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --b---     535620    0.0  419434444   39.1  419434496      39.1     8    1 29722064 20328228    2     1540    66054  6299761    1378083  356811584    0
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy --b---     465699    0.0  419434444   39.1  419434496      39.1     8    1 23722885 14536612    2      934    58579  5410710    1311356  328341987    0
  Domain-0 -----r     105543    0.0    6299648    0.6    6299648       0.6    20    0        0        0    0        0        0        0          0          0    0
      NAME  STATE   CPU(sec) CPU(%)     MEM(k) MEM(%)  MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS   VBD_OO   VBD_RD   VBD_WR  VBD_RSECT  VBD_WSECT SSID
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --b---     535621   20.1  419434444   39.1  419434496      39.1     8    1 29722065 20328229    2     1540    66054  6299761    1378083  356811584    0
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy --b---     465700   19.6  419434444   39.1  419434496      39.1     8    1 23722885 14536612    2      934    58579  5410710    1311356  328341987    0
  Domain-0 -----r     105544   11.1    6299648    0.6    6299648       0.6    20    0        0        0    0        0        0        0          0          0    0
      NAME  STATE   CPU(sec) CPU(%)     MEM(k) MEM(%)  MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS   VBD_OO   VBD_RD   VBD_WR  VBD_RSECT  VBD_WSECT SSID
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -----r     535622   20.6  419434444   39.1  419434496      39.1     8    1 29722066 20328233    2     1540    66054  6299761    1378083  356811584    0
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy -----r     465701   19.5  419434444   39.1  419434496      39.1     8    1 23722887 14536612    2      934    58579  5410710    1311356  328341987    0
  Domain-0 -----r     105544    7.6    6299648    0.6    6299648       0.6    20    0        0        0    0        0        0        0          0          0    0

行頭に日時をつける。

# xentop -fb -d 5|awk '!/\s*NAME/ {print strftime("%y%m%d %H:%M:%S"), $0}'
140831 22:26:47 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --b---     535757    0.0  419434444   39.1  419434496      39.1     8    1 29722255 20329591    2     1540    66054  6299935    1378083  356815016    0
140831 22:26:47 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy --b---     465834    0.0  419434444   39.1  419434496      39.1     8    1 23723011 14536612    2      934    58579  5410745    1311356  328342267    0
140831 22:26:47   Domain-0 -----r     105582    0.0    6299648    0.6    6299648       0.6    20    0        0        0    0        0        0        0          0          0    0
140831 22:26:52 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --b---     535758   19.8  419434444   39.1  419434496      39.1     8    1 29722257 20329606    2     1540    66054  6299935    1378083  356815016    0
140831 22:26:52 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy --b---     465835   19.6  419434444   39.1  419434496      39.1     8    1 23723012 14536612    2      934    58579  5410745    1311356  328342267    0
140831 22:26:52   Domain-0 -----r     105583    2.8    6299648    0.6    6299648       0.6    20    0        0        0    0        0        0        0          0          0    0
140831 22:26:57 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --b---     535759   19.7  419434444   39.1  419434496      39.1     8    1 29722258 20329608    2     1540    66054  6299935    1378083  356815016    0
140831 22:26:57 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy --b---     465836   19.6  419434444   39.1  419434496      39.1     8    1 23723013 14536612    2      934    58579  5410745    1311356  328342267    0
140831 22:26:57   Domain-0 -----r     105583    5.1    6299648    0.6    6299648       0.6    20    0        0        0    0        0        0        0          0          0    0

行頭に日時をつけてドメイン名とCPU使用率のみ表示する。

# xentop -fb -d 5|awk '!/\s*NAME/ {print strftime("%y%m%d %H:%M:%S"), $1, $4}'
140831 22:21:41 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0.0
140831 22:21:41 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 0.0
140831 22:21:41 Domain-0 0.0
140831 22:21:46 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 19.6
140831 22:21:46 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 19.6
140831 22:21:46 Domain-0 2.1
140831 22:21:51 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 19.8
140831 22:21:51 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 19.6
140831 22:21:51 Domain-0 2.1

参考

Oracle VM で使われている Xen のソースを読む

Oracle VM 3.2.7 で使われている Xen のバージョンを調べる

2.2 Oracle VM 3.1.1の新機能

Xenハイパーバイザの更新: Xenはリリース4.1.2に更新されています。

2 Oracle VMの新機能

と製品マニュアルに書かれている。


Note:1567537.1 Oracle VM 3.x major release/patch update version information

からリンクされている Oracle VM Server の MOS KB (Readme) を 3.2.8、3.2.7、3.2.6 と見ていくと、3.2.6 で Xen 4.1.3-25.el5.53 に上がっているようだ。


Oracle VM Server 3.2.7 の Dom0 で確認してみると、

# cat /etc/issue
Oracle VM server release 3.2.7
Kernel \r on an \m

# xm info
...
xen_major              : 4
xen_minor              : 1
xen_extra              : .3OVM

Xen 4.1.3 になっている。


Xen 4.1.3のソースを読む

Xen Project Source Repositories から xenbits.xen.org Git - xen.git/summary に行って、xenbits.xen.org Git - xen.git/commit から tree をクリックして、xenbits.xen.org Git - xen.git/tree を見れば良さそう。


Xen のソースを git リポジトリから clone する

  • clone する
$ mkdir xen
$ cd xen
$ git clone git://xenbits.xen.org/xen.git
Initialized empty Git repository in /home/yazekats/Documents/github/xen/xen/.git/
remote: Counting objects: 296060, done.
remote: Compressing objects: 100% (64343/64343), done.
remote: Total 296060 (delta 233240), reused 288747 (delta 226994)
Receiving objects: 100% (296060/296060), 57.24 MiB | 402 KiB/s, done.
Resolving deltas: 100% (233240/233240), done.
  • 確認してみる
$ ls -l
total 304
-rw-rw-r--  1 yazekats yazekats  3070 Aug 31 16:30 CODING_STYLE
-rw-rw-r--  1 yazekats yazekats 19866 Aug 31 16:30 COPYING
-rw-rw-r--  1 yazekats yazekats   484 Aug 31 16:30 CREDITS
-rw-rw-r--  1 yazekats yazekats  9863 Aug 31 16:30 Config.mk
-rw-rw-r--  1 yazekats yazekats 10160 Aug 31 16:30 MAINTAINERS
-rw-rw-r--  1 yazekats yazekats  7809 Aug 31 16:30 Makefile
-rw-rw-r--  1 yazekats yazekats  9887 Aug 31 16:30 README
-rwxrwxr-x  1 yazekats yazekats   120 Aug 31 16:30 autogen.sh
drwxrwxr-x  2 yazekats yazekats  4096 Aug 31 16:30 config
-rwxrwxr-x  1 yazekats yazekats 44826 Aug 31 16:30 config.guess
-rwxrwxr-x  1 yazekats yazekats 35543 Aug 31 16:30 config.sub
-rwxrwxr-x  1 yazekats yazekats 95633 Aug 31 16:30 configure
-rw-rw-r--  1 yazekats yazekats   896 Aug 31 16:30 configure.ac
drwxrwxr-x  5 yazekats yazekats  4096 Aug 31 16:30 docs
drwxrwxr-x  3 yazekats yazekats  4096 Aug 31 16:30 extras
-rw-rw-r--  1 yazekats yazekats   712 Aug 31 16:30 install.sh
drwxrwxr-x  2 yazekats yazekats  4096 Aug 31 16:30 m4
drwxrwxr-x  3 yazekats yazekats  4096 Aug 31 16:30 misc
drwxrwxr-x  2 yazekats yazekats  4096 Aug 31 16:30 scripts
drwxrwxr-x  8 yazekats yazekats  4096 Aug 31 16:30 stubdom
drwxrwxr-x 30 yazekats yazekats  4096 Aug 31 16:30 tools
drwxrwxr-x  3 yazekats yazekats  4096 Aug 31 16:30 unmodified_drivers
-rwxrwxr-x  1 yazekats yazekats   175 Aug 31 16:30 version.sh
drwxrwxr-x  9 yazekats yazekats  4096 Aug 31 16:30 xen
  • ちょっとソースを覗いてみる
/******************************************************************************
 * ioport_emulate.c
 * 
 * Handle I/O port access quirks of various platforms.
 */

#include <xen/config.h>
#include <xen/init.h>
#include <xen/sched.h>
#include <xen/dmi.h>

static void ioemul_handle_proliant_quirk(
    u8 opcode, char *io_emul_stub, struct cpu_user_regs *regs)
{
    uint16_t port = regs->edx;
    uint8_t value = regs->eax;

    if ( (opcode != 0xee) || (port != 0xcd4) || !(value & 0x80) )
        return;

    /*    pushf */
    io_emul_stub[0] = 0x9c;
    /*    cli */
    io_emul_stub[1] = 0xfa;
    /*    out %al,%dx */
    io_emul_stub[2] = 0xee;
    /* 1: in %dx,%al */
    io_emul_stub[3] = 0xec;
    /*    test $0x80,%al */
    io_emul_stub[4] = 0xa8;
    io_emul_stub[5] = 0x80;
    /*    jnz 1b */
    io_emul_stub[6] = 0x75;
    io_emul_stub[7] = 0xfb;
    /*    popf */
    io_emul_stub[8] = 0x9d;
    /*    ret */
    io_emul_stub[9] = 0xc3;

レイヤー感をビシビシ感じますねw

Poderosa から Cygwin に接続すると「アプリケーションを正しく起動できませんでした」と怒られる

事象

アプリケーションを正しく起動できませんでした(0xc000007b)。

[OK]をクリックしてアプリケーションを閉じてください。

f:id:yohei-a:20140831132842j:image


原因

  • Cygterm.exe に問題がある模様。

対処

対処方針

Cygterm をダウンロードしてコンパイルして置き換える。

Cygterm のコンパイルに必要な make などをインストールする*2
Cygterm をインストールする
# CygTerm setting

TERM = C:\Program Files (x86)\Poderosa\Poderosa.exe # <-- ココ
#TERM = telnet.exe %s %d
TERM_TYPE = vt100
PORT_START = 20000
PORT_RANGE = 40
SHELL = /bin/bash
ENV_1 = MAKE_MODE=unix
ENV_2 = HOME=/home
$ cd /cygdrive/d/software/bin/cygwin/cygterm_src/
$ tar xfvz cygterm107.tgz
$ cd cygterm107
$ make
  • cygterm.exe を D:\software\bin\cygwin\cygterm_src\cygterm107 から C:\Program Files (x86)\Poderosa\Protocols\Cygterm にコピーする。

Poderosa から Cygwin に接続してみる

  • できた

f:id:yohei-a:20140831150435j:image


参考

*1:[ファイル]-[新規cygwin接続]-[OK]

*2Cygwinインストール時にデフォルトのパッケージのみだと make などはインストールされていなかった

2014-08-24

.zshrc や vimrc とかの設定

誰かの .vimrc を頂いて設定しようと思って探していたら、id:yuroyoro さんが楽々セットアップできるようにされていたので、 iTerm2 + zsh + tmux + vim で快適な256色ターミナル環境を構築する - ( ???) ゆるよろ日記 を参考にセットアップしてみた。


手順

$ cd ~
$ git clone https://github.com/yuroyoro/dotfiles.git
$ cd dotfiles
$ ./setup.sh

スクリーンショット

f:id:yohei-a:20140824132800p:image:w640

エラーが出てるところは後で調べよ。


変更箇所

  • dotfiles/.zshrc.custom を以下の通り変更
45 #    POH="( &#42154;&#8979;&#42154;) $"
46     POH="(^-^;) $"
$ mkdir ~/.vim/colors
$ cd ~/.vim/colors
$ curl -o yuroyoro256.vim https://raw.githubusercontent.com/yuroyoro/yuroyoro256.vim/master/colors/yuroyoro256.vim
$ cd ~/.vim/bundle/vimproc/
$ make
$ vim -c Neobundle 'Shougo/vimproc.vim'
$ vim -c Neobundle 'Shougo/vimshell.vim'

参考

2014-08-23

UNIXのディレクトリ階層

ちょっと調べてみたのでメモ。

調べてみるとdirectoryはケン・トンプソンやデニス・リッチーが作り出した言葉ではなく、既にMulticsで使われていたようだ(http://www.multicians.org/mgd.html#directory)。Multicsは階層型記憶システムを実装した初めてのシステムと書いてある

UNIXのディレクトリの意味 - adsaria mood

UNIX系統のOSは、オリジナルであるSystem 7のディレクトリ構成をベースに、時代の要請を取り入れながら徐々に変わってきました。そのため、さまざまなシステムで似たり寄ったりの構成になっていますが、やはり細かい違いはあります。これを統一すべく策定されたのがFilesystem Hierarchy Standard(FHS)で、2001年8月時点ではバージョン2.2がリリースされています(http://www.pathname.com/fhs/)。

FHSはディレクトリ構成を規定し、/binや/sbinにはどんなコマンドがあるべきかまで記述してあります。有力なディストリビュータが協力しているので、今後はFHSに基づいたディレクトリ構成がメジャーになっていくと思われます。

Windowsユーザーに教えるLinuxの常識(2):各ディレクトリの役割を知ろう(ルートディレクトリ編) (1/2) - @IT

Certain conventions exist for locating particular kinds of files, such as programs, system configuration files and users' home directories. These were first documented in the hier(7) man page since Version 7 Unix;[5] subsequent versions, derivatives and clones typically have a similar man page.[6][7][8][9][10]

The details of the directory layout have varied over time. Although the file system layout is not part of the Single UNIX Specification, several attempts exist to standardize it, such as the Linux Foundation's Filesystem Hierarchy Standard (FHS).

Unix filesystem - Wikipedia, the free encyclopedia

hier の man page を見てみる。

% man hier

f:id:yohei-a:20140823160422p:image:w360

Windows7 でサイズの大きいファイルを探す

Windows7のCドライブの空きが少なくなったので、JDiskReport Downloads | JGoodies から JDiskReport をダウンロードしてインストールして調べてみたら、

f:id:yohei-a:20140823153134p:image:w640

WinSxS フォルダのサイズが一番大きかった。

よくある質問の 1 つは、ディスク領域を増やすために WinSxS フォルダーを削除してよいかというものです。簡単に言えば、答えは "いいえ" です。ただし、WinSxS フォルダーのサイズを減らす方法はいくつかあります。WinSxS フォルダーについて詳しくは、「コンポーネント ストアの管理」をご覧ください。このトピックは、実行中のバージョンの Windows 8.1 上で WinSxS フォルダーのサイズを減らすためのさまざまな方法についての情報を提供するために記述されました。

WinSxS フォルダーのクリーンアップ

ということなので、2013年最新版【Windows】HDDの空き領域をギガ単位で回復する方法 - NAVER まとめ を参考に cleanmgr を使ってディスクをクリーンアップしといた。

f:id:yohei-a:20140823154523p:image:w360

Grid Infrastructure のインストールで INS-40909 が発生する

INS-40909: 複数のドメインからのホスト名が入力されました。

原因: 異なるドメインに属する複数のノードに対してノード情報が入力されました。

処置: 同じドメインに属するホスト名を入力してください。

INS-40001からINS-45000

OUIで入力しているホスト名は正しく、hostname コマンドで返ってくるホスト名(FQDN)とも同じ。/etc/hosts に書いている VIP のホスト名が誤っていたのが原因だった。

Linux で root パスワードを忘れてしまった場合に再設定する方法

Oracle Linux on VirtualBoxroot パスワードを忘れてしまった場合の対処法を説明したので、メモっておく。

シングルユーザーモードで起動して root パスワードを変更するだけです。


環境

手順

再起動する*1
  • [Machine]-[Insert Ctrl+Alt+Del]を選択する。
  • "Shut down this system now?"と聞かれるので、"Restart"を選択する。

シングルユーザーモードで起動する
  • "e" を押す

f:id:yohei-a:20140823124754p:image:w360

  • "↓"キーを押して "kernel" で始まる行を選択し、"e" を押す

f:id:yohei-a:20140823124756p:image:w360

f:id:yohei-a:20140823124757p:image:w360

  • "b" を押して起動する

f:id:yohei-a:20140823124758p:image:w360


rootパスワードを変更する
# passwd root

f:id:yohei-a:20140823124759p:image:w360

# reboot


参考

*1:起動していない場合はこの手順は不要

2014-08-16

Oracle Linux 6.4 に Google Chrome をインストールする方法

インストール

# wget http://chrome.richardlloyd.org.uk/install_chrome.sh
# chmod u+x install_chrome.sh
# ./install_chrome.sh

起動する


参考

Linux で huge page を使っているプロセスを調べる方法

調べ方


調べ方の例

  • /proc/[pid]/smaps で KernelPageSize が 4 kB 以外のプロセスを探す。
[root@yazekats-linux ~]# perl -lane '/KernelPageSize/ and $F[1]!=4 and print qq/$ARGV\t$_/' /proc/*/smaps
/proc/3834/smaps	KernelPageSize:     2048 kB
[root@yazekats-linux ~]# ps -fp 3834
UID        PID  PPID  C STIME TTY          TIME CMD
root      3834  3832  0 13:44 pts/0    00:00:01 /home/yazekats/Documents/github/yoheia/misc/hugepage_test/hugepage-shm

おまけ

  • /proc/[pid]/smaps を覗いてみる
[root@yazekats-linux ~]# grep -C 12 'KernelPageSize:     2048 kB' /proc/3834/smaps 
2aaaaac00000-2aaabac00000 rw-s 00000000 00:0b 1277985                    /SYSV00000002 (deleted) <-- huge page を使っているアドレス(2aaaaac00000-2aaabac00000)やshmid(1277985)
Size:             262144 kB <-- huge page を使っている合計メモリサイズ
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
AnonHugePages:         0 kB
Swap:                  0 kB
KernelPageSize:     2048 kB <-- OSカーネルでの論理的なページサイズ
MMUPageSize:        2048 kB <-- MMUでの物理的なページサイズ
Locked:                0 kB
7ffff7fe0000-7ffff7fe3000 rw-p 00000000 00:00 0 
Size:                 12 kB
Rss:                  12 kB
Pss:                  12 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        12 kB
Referenced:           12 kB
Anonymous:            12 kB
  • pmap コマンドでプロセスが使っているメモリの内訳を確認する
[root@yazekats-linux ~]# pmap -x 3834
3834:   /home/yazekats/Documents/github/yoheia/misc/hugepage_test/hugepage-shm
Address           Kbytes     RSS   Dirty Mode   Mapping
0000000000400000       4       4       4 r-x--  hugepage-shm
0000000000600000       4       4       4 rw---  hugepage-shm
0000003ba6200000     128     108      12 r-x--  ld-2.12.so
0000003ba641f000       4       4       4 r----  ld-2.12.so
0000003ba6420000       4       4       4 rw---  ld-2.12.so
0000003ba6421000       4       4       4 rw---    [ anon ]
0000003ba6600000    1580     236       0 r-x--  libc-2.12.so
0000003ba678b000    2044       0       0 -----  libc-2.12.so
0000003ba698a000      16       8       8 r----  libc-2.12.so
0000003ba698e000       4       4       4 rw---  libc-2.12.so
0000003ba698f000      20      12      12 rw---    [ anon ]
00002aaaaac00000  262144       0       0 rw-s-  SYSV00000002 (deleted) <-- ここが huge page を使っている
00007ffff7fe0000      12      12      12 rw---    [ anon ]
00007ffff7ffc000       8       8       8 rw---    [ anon ]
00007ffff7ffe000       4       4       0 r-x--    [ anon ]
00007ffffffde000     132       8       8 rw---    [ stack ]
ffffffffff600000       4       0       0 r-x--    [ anon ]
----------------  ------  ------  ------
total kB          266116     420      84
  • ipcs コマンドで共有メモリの使用状況を見る
[root@yazekats-linux ~]# ipcs -a

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 32768      yazekats   600        393216     2          dest         
0x00000000 65537      yazekats   600        393216     2          dest         
0x00000000 98306      yazekats   600        393216     2          dest         
0x00000000 131075     yazekats   600        393216     2          dest         
0x00000000 163844     yazekats   600        393216     2          dest         
0x00000000 196613     yazekats   600        393216     2          dest         
0x00000000 229382     yazekats   600        393216     2          dest         
0x00000000 262151     yazekats   600        393216     2          dest         
0x00000000 294920     yazekats   600        393216     2          dest         
0x00000000 327689     yazekats   600        393216     2          dest         
0x00000000 360458     yazekats   600        393216     2          dest         
0x00000000 393227     yazekats   600        393216     2          dest         
0x00000000 425996     yazekats   600        393216     2          dest         
0x00000000 458765     yazekats   600        393216     2          dest         
0x00000000 491534     yazekats   600        393216     2          dest         
0x00000000 524303     yazekats   600        393216     2          dest         
0x00000000 557072     yazekats   600        393216     2          dest         
0x00000000 589841     yazekats   600        393216     2          dest         
0x00000000 622610     yazekats   600        393216     2          dest         
0x00000000 655379     yazekats   600        393216     2          dest         
0x00000000 688148     yazekats   600        393216     2          dest         
0x00000000 720917     yazekats   600        393216     2          dest         
0x00000000 753686     yazekats   600        393216     2          dest         
0x00000000 786455     yazekats   600        393216     2          dest         
0x00000000 819224     yazekats   600        393216     2          dest         
0x00000000 851993     yazekats   600        393216     2          dest         
0x00000000 884762     yazekats   600        393216     2          dest         
0x00000000 1212443    yazekats   600        393216     2          dest         
0x00000000 1245212    yazekats   600        393216     2          dest         
0x00000000 983069     yazekats   600        393216     2          dest         
0x00000000 1015838    yazekats   600        393216     2          dest         
0x00000000 1048607    yazekats   600        393216     2          dest         
0x00000000 1081376    yazekats   600        393216     2          dest         
0x00000002 1277985    root       600        268435456  1 <-- ココ(shmid が 1277985)                     
0x00000000 1441826    yazekats   600        393216     2          dest         
0x00000000 1474595    yazekats   600        393216     2          dest         
0x00000000 1671204    yazekats   600        123904     2          dest         
0x00000000 2392101    yazekats   600        123904     2          dest         
0x00000000 2588710    yazekats   600        123904     2          dest         

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0x00000000 0          root       600        1         
0x00000000 163841     root       600        1         
0x74012120 458754     root       644        1         
0x2d012120 557059     root       600        1         

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    
  • shmid:1277985 にアタッチしたプロセスなどを見てみる。
[root@yazekats-linux ~]# ipcs -m -i 1277985

Shared memory Segment shmid=1277985
uid=0	gid=0	cuid=0	cgid=0
mode=0600	access_perms=0600
bytes=268435456	lpid=3834	cpid=3812	nattch=1 <-- PID:3812 が共有メモリセグメントを作成し、PID:3834 が最後にアタッチ。lpid: last-attached PID、cpid: creator PID
att_time=Sat Aug 16 13:44:17 2014  
det_time=Sat Aug 16 13:43:50 2014  
change_time=Sat Aug 16 13:43:07 2014  

再現手順

[root@yazekats-linux ~]#  sysctl -w vm.nr_hugepages=200
vm.nr_hugepages = 200
[root@yazekats-linux hugepage_test]# 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) r
Starting program: /home/yazekats/Documents/github/yoheia/misc/hugepage_test/hugepage-shm 
shmid: 0x138021
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

参考

2014-08-03