2015-01-01から1年間の記事一覧
以下、長々と書いてますが、結論は ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablogに書いてます はじめに awk file より cat file|awk のほうが速いという以下のブログエントリが興味深いので調べてみました。 ち…
質問されたので、書いときます。 次は SQL*Plus の SET システム変数 TAB。SET TAB { ON | OFF } - SETシステム変数の一覧 sqlplus の出力をファイルに spool した後に眺めてみると、画面上では空白だと思っていたものが実は TAB 文字でした残念!という事が…
障害対応でのログ解析、ソースコードの調査といったテキスト処理で使った Perl ワンライナー集です。 マルチライナーやいけてないのもありますw Perl ワンライナーの好きなところ Perl は Oracle Database (10g以降) に同梱されているので、Windows プラット…
perf + Flame Graphs で Linux カーネル内のボトルネックを特定する - ablog で Linux カーネル内のボトルネックをマクロに分析する方法を紹介しましたが*1、 strace でI/Oシステムコールのレスポンスを調べると遅く*2、 iostat の await でカーネルのブロッ…
Serial direct path reads were first introduced in Oracle 11G which were noticed by many customers (in both positive and negative ways) who upgraded from the earlier releases. Back then I did a quick write up on the subject to try and tackl…
Linuxでddで1GBのファイルを作成し perf でプロファイリングし、Flame Graph (炎のグラフ?)にして可視化したものです。 Flame Graphs は perf(Linux)、SystemTap(Linux)、DTrace(Solaris、Oracle Linux(UEK)、Mac OS X、FreeBSD)、XPerf.exe(Windows) など…
DBA_HIST_SQL_PLAN に PLAN_HASH_VALUE が複数ある SQL の実行計画を DBMS_XPLAN.DISPLAY_AWR で一括出力する SQL。再帰SQLが出力されないよう OBJECT_OWNER で絞っている。 SQL set pagesize 50000 set linesize 200 select b.* from ( select distinct sql…
実行計画の OPERATION ってどこのX$表に入っているんだろうと思って調べたら、tech.E2SN に書かれていた。 X$XPLTON (eXPLain rowsource Operator Names) (11.1 -) X$XPLTOO (eXPLain rowsource Operator Options) (11.1 -) DBA_HIST_PLAN_OPERATION_NAME (1…
VMware の VMFS と RDM の比較 VMFS(Virtual Machine File System) スナップショットを取得できる。 Storage vMotion を使える。 RDM(Raw Device Mapping) ストレージバックアップを取る場合はRDMを使う必要がある。 rawデバイスだがVMFSのマップファイルに…
もわっとしたイメージ重視のテキトーメモ。正確性、網羅性は重視していない。 チューニングの三原則 仕事量(計算量)を減らす 仕事量は CPUコスト + I/Oコスト とも言える 行単位でデータが必要な場合は行指向、列方向でデータが必要な場合は列指向など 圧…
ちょっとだけ調べたのでメモ。 実行時間(/usr/bin/time -p) split は xargs より 2.6倍速い(xargs: 4.30秒、split: 1.66秒) xargs -P $ seq 10e3 | /usr/bin/time -p xargs -I{} -P4 sh -c '/bin/true {}' real 4.30 ★ user 4.37 sys 6.24 split -n r/ $ seq…
$ tar Jxvf coreutils-8.23.tar.xz 参考 xz はLZMA2圧縮アルゴリズムを利用する可逆圧縮ファイルフォーマットである。 xzは、gzipやbzip2のように、複数の圧縮ファイル結合をサポートしているが、二つ以上のターゲットファイルを一つのアーカイブにまとめる…
ちょっと質問されて回答したことをメモ。 事象 # yum install compat-libstdc++-33-3.2.3-69.el6.i686 ... エラー: 依存性の欠如: libc.so.6 は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています 調査方法 yum provides で調べると 64bit の gli…
CPU使用率が高くなってくると、プロセス(スレッド)がCPUを待つランキュー待ち時間が増えます。vmstatのr列などを見ればすぐにわかりますが、Oracle Database の性能分析で AWR レポートやStatspackレポートしか情報がないといった場合は以下のような兆候から…
Oracle Database には latch(ラッチ) という排他制御があります。latch はスピンロックで、CPUを使って一定回数スピン(ループ)しながらロックを獲得しようとします。一定回数スピンして獲得できないとスリープします。AWR レポートや Statspack レポートに…
VMware ESX はメモリのオーバーコミット、つまり、物理メモリより大きなメモリをゲストに割当てることができる。 何がうれしいかというと、「メモリの有効活用」と「ゲストの集約」ができる。 メモリ使用量が多いゲストと少ないゲストがある場合、使用量が少…
vmstat などでページイン、ページアウトの発生状況を確認したいが、AWRレポートしかないという場合は Operating System Statistics の VM_IN_BYTES、VM_OUT_BYTES で確認できる。 VM_IN_BYTES: Total number of bytes of data that have been paged in due t…
AWS クラウド 無料利用枠を使ってみる。 無料利用枠内に抑えるポイント EC2はマイクロインスタンスのみ インスタンス作成時に「無料利用枠の対象」と表示されているAMIを選べばよい EBSは30GB以内 1ヶ月750時間以内(750時間はサーバーの稼働時間でカウントさ…
環境 ゲストOS: Windows 7 仮想化ソフトウェア: VirtualBox 4.3.24 ホストOS: Oracle Linux 6.4 状況 ディスクボリュームはCドライブとDドライブがあり、Cドライブの容量が足りなくなったケース。 手順 VirtualBox Manager でスナップショットを削除する Vir…
事象 yum update 後に There are unfinished transactions remaining. Please run yum-complete-transaction as root. と怒られた。 対応 root で yum-complete-transaction を実行する。 # yum-complete-transaction ... Nothing in the unfinished transac…
RHEL互換ディストリビューションでの不要サービスを調べたメモ。 不要なデーモンを停止させる (CentOS 6.5) - Qiita http://www.d3.dion.ne.jp/~koetaka/demon2.html ���s�v�f�[�����̒��~(CentOS6)�����S�҂̂��߂�Linux�T�[�o�[�\�z�u��(CentOS �����T�[�o�[�Ή…
手順は VirtualBox を 4.3.16 から 4.3.20 にアップグレードしたメモ - ablog と同じ。 [root@yazekats-linux ~]# yum update VirtualBox-4.3 (中略) ================================================================================ Package Arch Ver…
is not null で count する SQL を Index Only "Fast Full" Scan で仕事(計算)量を減らして高速化してみた。インデックスを作成すると、オプティマイザが期待していた仕事(計算)量が少なくなる実行計画を選択してくれた。 チューニング結果 ビフォー 17:…
$ zip -r csv csv
perl -lane '$F[2]=~s/^([a-z]+).*/$1/; $h->{$F[1]}->{$F[2]}++;END{map{$t=$_ and print $t;map{print qq/$t\t$_\t$h->{$t}->{$_}/} keys %{$h->{$_}}} keys %$h}'' strace.loggrep -hA 20 '^top -' top.logperl -lane '/top - ([\d:]+)/ and $t=$1;$F[0]=…
[root@yazekats-linux ~]# yum update google-chrome-stable ... Updated: google-chrome-stable.x86_64 0:40.0.2214.91-1 Complete! [root@yazekats-linux ~]# cat /etc/issue Oracle Linux Server release 6.4 Kernel \r on an \m [root@yazekats-linux ~]…
When you commit a transaction you update the transaction table slot that identifies your transaction to show that the transaction is committed – this is a change to an undo segment header block so it generates a redo change vector. THe han…
If a system call is being executed and meanwhile another one is being called from a different thread/process then strace will try to preserve the order of those events and mark the ongoing call as being unfinished. When the call returns it…
素敵なサイト 徹底解剖「G1GC」実装編 HotSpot Memo ただのメモ OpenJDK をダウンロードする http://download.java.net/openjdk/jdk7/ から openjdk-7-fcs-src-b147-27_jun_2011.zip をダウンロードする。 解凍する $ unzip openjdk-7-fcs-src-b147-27_jun_2…
システムコールの所要時間は strace の -T オプションで調べることができる。 上はEXCELでピボットテーブルを使ってグラフ化したもの I/Oレスポンス(read システムコールの所要時間)は5〜15ミリ秒であることがわかる 例 strace でシステムコールのトレース…