ablog

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

Linux

tar.xz を解凍する

$ tar Jxvf coreutils-8.23.tar.xz 参考 xz はLZMA2圧縮アルゴリズムを利用する可逆圧縮ファイルフォーマットである。 xzは、gzipやbzip2のように、複数の圧縮ファイル結合をサポートしているが、二つ以上のターゲットファイルを一つのアーカイブにまとめる…

compat-libstdc++ をインストールしようとすると libc.so.6 が必要と怒られる

ちょっと質問されて回答したことをメモ。 事象 # 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…

Please run yum-complete-transaction as root

事象 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…

RHEL6互換ディストリビューションでの不要サービス

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�[�Ή…

zipに圧縮 on Linux

$ zip -r csv csv

chrome を 更新した

[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 ~]…

strace で出力される resumed の意味

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…

strace でシステムコールの所要時間を調べる

システムコールの所要時間は strace の -T オプションで調べることができる。 上はEXCELでピボットテーブルを使ってグラフ化したもの I/Oレスポンス(read システムコールの所要時間)は5〜15ミリ秒であることがわかる 例 strace でシステムコールのトレース…

Oracle Database のインストーラから特定のバイナリを見つけて取り出す

$ find . -type f -name '*.jar' -print|while read LINE do jar tvf ${LINE}|perl -nle "/\/oracle$/ and print \"${LINE}\" . qq/\$_/" done ./stage/Components/oracle.rdbms/11.2.0.4.0/1/DataFiles/filegroup38.jar 0 Sat Aug 24 11:43:30 JST 2013 bin…

/proc/meminfo の Inactive は利用可能なメモリ領域ではない

ちょくちょく、/proc/meminfo の Active が使用中、Inactive は使用可能な領域ですよねと聞かれることがあり、違いますよと話すことがあるので、出典をメモっておく。 がちゃぴん先生のブログ Activeはページキャッシュや無名ページ(注3)のうち、最近利用…

top でプロセスがスリープしている原因を表示する

がちゃぴん先生のブログに さだださんと雑談していて、Solarisはページフォルトで寝ているとtopのステータスにそう表示されるから便利とかいう話に。それLinuxでも出来るよ。wchan表示したら、スリープしてる関数名表示されるから一発だよ。 やりかたtop を…

dstat ってオプション多いですね

man 眺めてるといろいろありますね。 $ dstat -tmcdn --aio --top-bio --top-cpu --top-mem 5

ps で表示されるCPU使用率 = CPU時間 / 実行時間

Linux でCPU使用率の高いプロセスを探す時、ps で表示されるCPU使用率は累計値になるので、top を使うけど、ps で表示されるCPU使用率の算出式が気になったので、調べてみた。 算出式 CPU使用率 = ( プロセスが使用したCPU時間 / プロセスの実行時間 ) * 100…

top でプロセスが使っていたCPU番号を表示する

top を実行して、f 押して j 押せばプロセスが最後に使ったCPU番号を表示できる。フィールドの選択ができるのは知っていたけど、CPU番号があるのは知らなかった。h でヘルプは見ていたが、今までなんで気づかなかったんだろう。 top を実行して $ top f 押し…

top -H でCPU使用率の高いスレッドを調べる

top でスレッド単位で表示させたい場合は -H オプションを使う。 $ top -H top を起動してから、H(shift + h) でもよい。 $ man top -H : Threads toggle Starts top with the last remembered ’H’ state reversed. When this toggle is On, all individual …

gdb でレジスタの値を書き換えてみる

同僚に教えてもらった gdb で実行中のプロセスにアタッチして、writeシステムコール発行直前でレジスタのファイルディスクリプタを書換えるというのを試してみた。 write_loop.c #include <unistd.h> int main(void) { while(1) { write(1, "foo\n", 4); } } コンパイ</unistd.h>…

Huge Page の解放について

ちょっと検証してみたメモ。 検証結果 vm.nr_hugepages を設定する [root@yazekats-linux ~]# grep -i hugepage /proc/meminfo AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB [root…

micbench をインストールしてみた

インストール 必要なパッケージをインストールする $ sudo yum install numactl $ sudo yum install numactl-devel micbench を入手してインストールする $ git clone git://github.com/hayamiz/micbench.git $ cd micbench/ $ ./autogen.sh $ ./configure $…

Perfmonger をインストールしてみた

インストール $ git clone git://github.com/hayamiz/perfmonger.git $ cd perfmonger/ $ ./autogen.sh $ ./configure $ sudo make install 使ってみる $ perfmonger record -i 0.1 {"time": 1418432543.6794, "cpuinfo": {"nr_cpu": 4, "all": {"usr": 0.00…

prociostat.pl と visualize_prociostat.R で Linux のプロセスのボトルネックを分析する

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

"Linuxのしくみを学ぶ - プロセス管理とスケジューリング"を読んだ

id:syuu1228 さんのLinuxのしくみを学ぶ - プロセス管理とスケジューリング がとてもわかりやすかった。ここまで分かりやすさと深さを両立した説明は初めて読んだ。プロセススケジューラの自分用の備忘録です。 タイマ割込みのタイミングでプロセスの切り替…

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

HugePages は free コマンドで見ると used に計上される - ablog の続き。 Huge Page はユーザープロセスから使われる前はOSカーネル内に確保され、used に計上されるが、ユーザプロセスが使用すると cahched に計上されるぽい。 検証結果 # ulimit -l unlim…

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

http://www.insight-tec.com/dbts-tokyo-2014.html で「シンプルでシステマチックなLinux性能分析方法」というお題でしゃべりました。資料は公開しませんが、内容は Brendan Gregg の Systems Performance Book に書かれていることばかりです。Brendan は Su…

iostat はどのように %util を算出しているか(3)

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

LinuxでCPU使用率を上げるコマンド

いいものを見つけたのでコピペ。 yes >> /dev/null & 最後に & お勧め w(二つターミナルが必要でなくなる。)ちなみに メモリ負荷をあげる魔法のコマンド /dev/null < $(yes) & LinuxでCPU負荷を上げる魔法のコマンド - Qiita ">>" は ">" でも良いと思う…

vmstat の sys は soft や irq も含む

Linux で mpstat だとカーネルモードで使用されたCPU使用率は sys、soft(ソフトウェア割込み)、irq(ハードウェア割込み) が別々に表示される。vmstat は sy だけなので、たぶん soft と irq も含まれるんだろうと思っていた。vmstat のソースを見るとやはり…

yum update したら"Another app is currently holding the yum lock; waiting for it to exit..."と怒られる

事象 yum でパッケージを update しようとすると、以下のメッセージが出力される。 # yum update jre Loaded plugins: security Existing lock /var/run/yum.pid: another copy is running as pid 3982. Another app is currently holding the yum lock; wai…

oh-my-zsh をインストールしてみた

Oracle Linux 6.4 に oh-my-zsh をインストールしてみた。 oh-my-zsh をインストールする % curl -L http://install.ohmyz.sh | sh oh-my-zsh のテーマを変更する ~.zshrc を以下の通り編集する #ZSH_THEME="robbyrussell" ZSH_THEME="agnoster" Powerline …

tree コマンドをインストールした

今更、マイPC(Oracle Linux 6.4)に tree コマンドがインストールされてないことに気づいたのでインストールした。 # yum install tree

curlでファイルをダウンロードする

自分もいつもオプションを忘れるのでメモ Webからファイルをダウンロードするときwgetを使います。 wgetは、リダイレクトに対応していないので、リダイレクトを使っているサイトの場合には、curlを使います。 オプションをいつも忘れてしまうので、書いてお…