Hatena::ブログ(Diary)

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

2014-11-22

「性能測定道」 by 東大喜連川研究室の早水さん が素晴らしすぎる

東大喜連川研究室の早水さんが日本PostgreSQLユーザ会で話された「性能測定道」がとても勉強になった。

スライドとYoutube動画が公開されています。Youtube にはスライドには書かれていない話しも出てきて、説明も非常にわかりやすいです。こういうアカデミックで最先端の研究をされている方が情報発信されるのはとてもうれしい。

id:hayamiz さんのことは何年も前から認識していたが、喜連川研究室でデータベースの研究をされているというのは初めて知りました。

Yuto HAYAMIZU / はやみず | Everyday Deadlock も要チェックです。


性能測定道 事始め編


性能測定道 実践編


「性能測定道 事始め編」で紹介されていた本を買ってみましたが、なかなか歯ごたえのありそうな本です。90年台にDECの方が書かれた本です。



追記(2014/11/23):

もしかしたら、喜連川教授をご存知ない方がいらっしゃるかもしれないので、ご参考までに。

2014-11-21

HugePage は free コマンドで見ると used に計上される(2)

HugePages は free コマンドで見ると used に計上される - ablog の続き。

Huge Page はユーザープロセスから使われる前はOSカーネル内に確保され、used に計上されるが、ユーザプロセスが使用すると cahched に計上されるぽい。


検証結果

# ulimit -l unlimited
# ulimit -l
unlimited
# sysctl -w vm.nr_hugepages=200
vm.nr_hugepages = 200
# sysctl vm.nr_hugepages
vm.nr_hugepages = 200
# 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: 0x150025
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) 

System V IPC 共有メモリで 256MB 使われている

# ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
(中略)
0x00000002 1376293    root       600        268435456  1 ★256MB   

共有メモリを作成したプロセスの PID は 4500

# ipcs -p

------ Shared Memory Creator/Last-op --------
shmid      owner      cpid       lpid 
(中略)
1376293    root       4500       4500 ★共有メモリを作成、操作したプロセスの PID は 4500       

PID 4500 のメモリ使用量の内訳を pmap コマンドで確認する

# pmap -x 4500
4500:   /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) ★ここが共有メモリ。RSSが0、本当に物理的に使われていないのか?
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

2014-11-16

起動しなくなった MacBook Air を修復した

モデル


事象

  • 電源ボタンを押すと、しばらくグルグルした後、電源OFFになり起動しない

対処

fsckファイルシステム修復
  • 電源ボタンを押した後、「Command (Apple ⌘) 」と「S」キーを同時に押す
  • fsck -fy を実行する。
# fsck -fy
(中略)
** Checking Catalog File.
    Invalid key Length
(4,11485)
** Volume check failed.
/dev/rdisk0a2 (hfs) EXITED WITH SIGNAL 8

f:id:yohei-a:20141117002838j:image:w360

ボリュームのチェックに失敗、次の手を考える…

  • 停止する
# shutdown -h now
fsck_hfsでファイルシステム修復
# df
# umount /dev/rdisk0a2
# fsck_hfs -r /dev/rdisk0a2

f:id:yohei-a:20141117003804j:image:w360

修復できなかったって表示されてるけど。。。

  • 停止する
# shutdown -h now
  • 電源ボタンを押すと起動した!

f:id:yohei-a:20141117003939j:image:w360

修復できてない箇所はまた調べよう。

参考


追記:

ちょっと事情によりメインマシンがなかったので、週末にインターネットできるマシンがほしかっただけです。ごめんなさい…

2014-11-15

「シンプルでシステマチックなLinux性能分析方法」 @ db tech showcase 東京 2014

f:id:yohei-a:20141115133146j:image:w360

db tech showcase 東京 2014 | Insight Technology, Inc. で「シンプルでシステマチックLinux性能分析方法」というお題でしゃべりました。資料は公開しませんが、内容は Brendan Gregg の Systems Performance Book に書かれていることばかりです。

Brendan は Sun、Oracle、Joyent でカーネル、パフォーマンスのエンジニアとして活躍し、現在は Netflix(北米インターネットトラフィックの32.3%を占める。Youtubeは17.1%)*1シニア・パフォーマンス・アーキテクトです。ZFS L2ARC や DTrace Toolkit の開発者で、Solaris Performance and ToolsDTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD の著者で、LinuxConFreeBSD SummitOaktable WorldAWS re:Invent などのイベントで幅広く活動されています。是非 Brendan Gregg’s Homepage をご覧ください。

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


著者 Brendan Gregg による書籍紹介スライド


発表内容の目次

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


聴講したセッション

自分の発表の準備と仕事で他のセッションはほとんど聴講できず、今回聴講したセッションは以下の3つです。

[A11:Oracle]Memory Structure Control: How it works (latches & mutexes) by Craig Shallahamer (Oracle Ace Director)
[A25:Oracle]Introduction to Time-Based Performance Analysis: Stop the guessing! by Craig Shallahamer (Oracle Ace Director)

Oracle Database の性能分析の大家 Craig Shallahamer の生セッションを聞けて幸せでした。latch や mutex といいたスピンロックを体を張った説明をされていて最高でした。セッションスピーカーとしても大好きなスタイルでした。

f:id:yohei-a:20141115140819j:image:w360

ちゃっかりサインも頂きました

f:id:yohei-a:20141115141645j:image:w360

[B24:MySQL]Windows 上で活用するMySQL by 横道克己(日本オラクル株式会社)

MSで12年間、Windowsを開発されていた横道さんの「Windows 上で活用するMySQL」は非常に面白かったです。MySQLWindowsLinuxベンチマークをとって、その差を WindowsLinuxライブラリの世界に静的・動的に Deep Dive して説明される姿はまさに自分のイメージするカーネルハッカーでした。今は同じ会社なので、こんど是非ゆっくりお話を聞いてみたいです。

f:id:yohei-a:20141115140749j:image:w360


P.S.

OracleクラスタPostgreSQLクラスタ、RiakクラスタMySQLクラスタアイドルクラスタ、InsightクラスタMySQL Cluster クラスタの集まった謎飲み会 は非常に楽しかった。

2014-10-19

VirtualBox 4.3.18 にアップデートしたメモ

VirtualBox を 4.3.16 から 4.3.18 にアップグレードした(ホストOSOracle Linux 6.4)。

VirtualBoxアップグレードする
# yum update VirtualBox-4.3

VirtualBox Extension Pack をインストールする

Guest Additions をインストールする
  • ゲストOSを起動する。
  • メニューから[Devices]-[Install Guest Additions...]を選択する。
  • インストーラがマウントされるので、マウントされたドライブを開いて、VboxWindowsAdditions.exe を右クリックして「管理者として実行する」を選択する。
  • ウイザードに従ってインストールする。
  • Choose Components で Direct3D Support は選択不要。
  • ゲストOS再起動する。

関連