ablog

不器用で落着きのない技術者のメモ

2015-01-01から1年間の記事一覧

シンプルでシステマチックな Linux 性能分析(本)

チートシート 本書のエッセンスを一瞥できるチートシート × 3枚 ハードウェア/ソフトウェアスタックとツール*1 リソース監視(コマンドと見方)*2 はじめに パフォーマンス分析は職人芸だという話をよく聞くが、原理やメソッドのエッセンスを学べば初心者でも…

2038年問題

glibc で time_t は long int で、gcc で 32bit モードでコンパイルすると 32bit、64bit モードだと 64bit になる(ワードサイズになる)ということぽい。 LONG_TYPE_SIZE A C expression for the size in bits of the type long on the target machine. If yo…

ランキュー数に ON CPU のスレッドを含む OS と含まない OS

Linux、HP-UX、AIX: 含む Solaris: 含まない

Oracle Linux 6 on OracleVM では gettimeofday が vDSO でない

gettimeofday(2) は VDSO によりユーザー空間で実行される - ablog と違って Oracle Linux 6.7 on OracleVM 3.2 (Xenベース) だと strace で gettimeofday が出るという話を聞いたので、 strace のログを見てみます。Non Blocking I/O の システムコール(io_…

OOM Killer について

RHEL4 は vm.oom-kill=0 で無効化できる RHEL5(kernel 2.6.11) 以降はプロセス単位のみ制御可能(echo -17 > /proc/[pid]/oom_adj) RHEL7(kernel 2.6.36) 以降は echo -1000 > /proc/[pid]/oom_score_adj proc(5) - Linux manual page

DBサーバの空きメモリサイズの見方(Oracle Database on Linux)

JPOUG Advent Calendar 2015 の5日目のエントリーです。 昨日は [twitter:@discus_hamburg] さんの Mac De Oracle: OTHER_XMLの中身 でした。 Linux で Oracle Database を使っている場合の”実質的な”空きメモリサイズの算出方法を紹介します。 絵は 「シン…

UTF-16に関するメモ

知らんかった。perl -pe 's/\x00//g' foo.log— yohei-a (@yoheia) 2015, 11月 20@wrcsus4 UTF-16 ってそんな仕様なんですか?— yohei-a (@yoheia) 2015, 11月 20@wrcsus4 そんな感じですー— yohei-a (@yoheia) 2015, 11月 20@yoheia なはずですね :-)— Watab…

2種類の非同期I/O

非同期I/Oの「非同期」の意味が2つあって、紛らわしくなった背景を書いてみた*1。 Unix では (non)synchronizedと(a)synchronous という用語が使われているが、英語(自然言語)だと紛らわしい*2 (a)synchronous はI/O処理を待つかどうか、(non)synchronized …

Linux のページ回収まわりのカーネルパラメータ

Linux(kernel 2.6.32-303 以降)のDBサーバでメモリ16GB、スワップ領域16GBの場合、ざっくりこんな感じが良いかなという妄想メモ。 vm.swapiness=1 vm.overcommit_memory=2 vm.overcommit_ratio=80 vm.min_free_kbytes=524288 vm.extra_free_kbytes=1048576(k…

RHEL6.4(kernel 2.6.32-303)以降の vm.swappiness=0 と OOM Killer の関係

RHEL6.4(kernel 2.6.32-303)以降、vm.swappiness=0 にすると OOM Killer が発動しやすくなるので、1 にしましょうという話を見かけるのでメモ。詳しくは後日調べる予定。 Deploying Oracle Database 12c on Red Hat Enterprise Linux 6 Best Practices Warni…

disk_asynch_io=false ならASMに対して同期I/O(pwrite)になる

As you know ASM is doing non (operating system) buffered I/O (also known as ‘DIO’ or Direct I/O) regardless of the oracle database filesystemio_options parameter.But what’s about : Asynchronous/Synchronous I/O ?If you have a look to MOS no…

physical reads prefetch warmup

今更なネタですがメモ。 Oracle Database (10.1以降)でバッファキャッシュがスカスカの場合、アクセスパスが INDEX UNIQUE/RANGE SCAN でも db file scattered read でマルチブロックリードすることがある。 これはブロックにアクセスするついでに近くのブロ…

Oracle Database on Linux で SGA(共有メモリ) のスワップアウトを防ぐ方法

Oracle Database の初期化パラメータ LOCK_SGA = true を設定する SGA(共有メモリ) に HugePages を使う Linux のカーネルパラメータ vm.swappiness=0 にする(Linux Kernel 3.5 未満は 0 にしてもページアウトされることがある)

"ipcs -um"で共有メモリがスワップアウトされているか確認する

ipcs -um の "pages swapped" がスワップアウト(ページアウト)されたページ数。 これに 4KB を掛けるとページアウトされたサイズを算出できる。 $ ipcs -um ------ Shared Memory Status -------- segments allocated 39 pages allocated 3464 ★仮想メモリに…

書籍”Oracle の現場を効率化する100の技”の紹介

この本を一言で言うと「オラクルコンサルタントのノウハウモロ見せ」です。Oracleの現場を効率化する100の技作者: 鈴木健吾,玉置雄大,塩原浩太,小林修,大森慎司,内村友亮出版社/メーカー: 技術評論社発売日: 2015/05/26メディア: 単行本(ソフトカバー)この…

JPOUG> SET EVENTS 20151017 に参加しました

JPOUG> SET EVENTS 20151017 | Japan Oracle User Group (JPOUG) JPOUG > SET EVENTS 20151017 - Togetter に参加しました 写真は @tadayima_jpさんのツイート から頂きました。発表はしていませんが林優子さんと小田さんの”DBエンジニアのスキルの現実と伸…

NFSでI/Oシステムコール発行後に応答がない場合、プロセスを kill できるか

NFSのマウントオプションで soft と hard がある。プロセスがI/Oシステムコールを発行してユーザーモードからカーネルモードにコンテキストスイッチした後、応答がないと、soft の場合はリトライを繰返した後にI/Oエラーになるが、hard の場合は応答があるま…

vm.min_free_kbytes からの wmark_{min|low|high} 算出式

Linux のページ回収の閾値である wmark_min、wmark_low、wmark_high の算出式を調べたメモ。 算出式 正確には NUMA ノードの ZONE 毎に計算されるが、合計の概算は下記の式で計算できる。 min_free_kbytes = sqrt(物理メモリサイズ(KB) * 16) wmark_min = mi…

ext4 の性能についての資料

ただのメモ Scaling the Linux Kernel(Revisited): Using ext4 as a Case Study by Theodore Ts'o (Google)

Red Hat Enterprise Linux のリリースとカーネルのバージョンの対応を調べるページ

Red Hat Enterprise Linux のリリース日と収録カーネルの一覧 - Red Hat Customer Portal 関連 Oracle Linux のディストリビューションとカーネルバージョンを調べる方法 - ablog

NFS のマウントオプションの hard と soft について調べたメモ

NFS のマウントオプションの hard、soft について調べたメモ(Linux限定)。 まとめ hard の動作 NFS サーバが応答するまで書込を永遠に繰返す。 アプリケーションはI/Oを発行した後、完了待ちでスリープし続ける。 hard と intr を併用するとシグナルを送って…

"Reducing Memory Access Latency" が素晴らしすぎる

Reducing Memory Access Latency by Satoru Moriya (Hitachi LTC) が素晴らしすぎるのでメモ。 まとめ vm.swappiness = 0 により、解放可能なページキャッシュがあるうちはプロセスのメモリ(anon page)をスワップアウトしないようにできる*1。 swappines=0 …

NFSの排他制御について

NFSの排他制御についてメモ(Linux限定)Managing NFS and NIS: Help for Unix System Administrators作者: Mike Eisler,Ricardo Labiaga,Hal Stern出版社/メーカー: O'Reilly Media発売日: 2001/08/15メディア: ペーパーバックこの商品を含むブログを見る 11.…

oracle.jdbc.ReadTimeout はソケット読込時のタイムアウト

Oracle JDBC Thin Diver の oracle.jdbc.ReadTimeout について調べたことをメモ。 Oracle ACE の id:yamadamn さんのスライドがわかりやすいです。 Oracle JDBCドライバプロパティの活用 from Oracle Fusion Middleware P.11 P.12 まとめ Oracle JDBC Thin D…

Linux のページテーブルのサイズの見方と見積式

Linux Kernel 2.6 (x86-64) でのページテーブルのサイズの確認方法と見積式を調べてみた。 あっているか自信のないところもある&まだ書きかけ。 ページテーブルのサイズの見方 OS全体のページテーブルのサイズ $ cat /proc/meminfo MemTotal: 16158544 kB M…

Oracle RAC の投票ディスクについて

オラクルマスター教科書 ORACLE MASTER Expert 【RAC】編(試験番号:1Z0-048) P.460 投票ディスクの機能 CSSD(Cluster Syncronization Service デーモン)は、インターコネクトを介してほかのノードと通信し、通信状況を投票ディスクに格納します。インターコ…

VirtualBox を 4.3.28 から 4.3.30 にアップグレードした

手順は VirtualBox を 4.3.16 から 4.3.20 にアップグレードしたメモ - ablog と同じ

pgrep で子プロセスの PID を調べる

子プロセスの PID を取得したい場合、人間が見るには pstree が便利だけど、 $ pstree -alp $$ zsh,13840 ├─pstree,14216 -alp 13840 ├─zsh,13940 │ └─sleep,14213 10 └─zsh,13992 └─sleep,14215 10 シェルスクリプトで子プロセスの PID を取得して何か自動…

プロセスのランキュー待ち時間とI/O待ち時間を調べる

cat file|awk では実行時間 システムコールで取得します。catのプロセスと awk のプロセスが並列実行されている期間があるため、実行時間 (中略) 大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog と書きましたが、プロセスの…

”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由

大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog を書きましたが、awk file > file より cat file|awk > file が速い環境は稀なようなので、私の環境でなぜ cat file|awk > file のほうが速いのか調べてみました。プロセススケ…