ablog

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

2014-12-01から1ヶ月間の記事一覧

2014年の振返りと2015年にすること

2014年の振返り ステマ 『絵で見てわかるITインフラの仕組み』が2013年ジュンク堂池袋本店コンピュータ書売上ランキング第5位に入りました - ablog 勉強会開催 シンプルでシステマチックな Linux 性能分析の勉強会開催 TC勉強会(社内) テキトーク×2回(…

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 を…

10進数からの16進数 変換 Perl ワンライナー

16進数から10進数に変換 perl -e 'map{print hex($_)} @ARGV' 4a98 10進数から16進数に変換 perl -e 'printf qq/%X/, 19096'

ネイティブスレッドとJavaスレッドのマッピング

Javaスレッドダンプの nid がOSのLWP番号の16進数表現。メモメモ。 取得したスタックトレースから、各スレッドの先頭行にある「nid=0xXX」という16進数に注目します。 この16進数が、prstatコマンドやpstackコマンドで取得したLWP番号(10進数)の16進数表現…

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 …

micbench でノートPCのメモリアクセスレイテンシを計測してみた

環境 ハードウェア Lenovo Thinkpad X230 Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz L1 Data Cache: 32KB L1 Instruction Cache: 32KB L2 Cache: 256KB L3 Cache: 3MB $ cat /proc/cpuinfo |grep 'model name'|head -1 model name : Intel(R) Core(TM) i5-3…

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…

dstat + fluentd + Elasticsearch + kibana でノートPCをモニタリングする

id:kazeburo さんの dstat + fluentd + Elasticsearch + kibana でサーバモニタリングする - blog.nomadscafe.jp を参考に自分のノートPCを dstat + fluentd + Elasticsearch + kibana でモニタリングできるようにした。Kibana の設定が一番難しかった。GUI…

Kibana 3 + Elasticsearch 1.4.1 で Connection Failed と怒られる

事象 Kibana 3 + Elasticsearch 1.4.1 で Connection Failed と怒られる 対応 /etc/elasticsearch/elasticsearch.yml に以下を追記する(末尾に追記した)。 http.cors.allow-origin: "/.*/" http.cors.enabled: true elasticsearch を再起動する。 # servic…

VirtualBox を 4.3.16 から 4.3.20 にアップグレードしたメモ

VirtualBox on Oracle Linux 6.4 を 4.3.16 から 4.3.20 にアップグレードした手順のメモです。 環境 ホストOS # cat /etc/issue Oracle Linux Server release 6.4 Kernel \r on an \m # uname -r 2.6.39-400.17.1.el6uek.x86_64 手順 VirtualBox を4.3.20 …

iPhone4S の iCloud バックアップを iPhone6 Plus に復元

iPhone4S が故障して起動しなくなった時にちょうど iPhone 6 の予約受付を開始していたので、iPhone 6 Plus (128GB) に iCloud で復元したときのメモです。アドレス帳、写真、メールなど一式元通りになりました。 手順 [設定]-[一般]-[リセット]-[すべてのコ…

fulltime.sh by Craig Shallahamer で DB CPU の内訳を調べる

2012年(zusaar.com -&nbspzusaar リソースおよび情報) 2013年(zusaar.com -&nbspzusaar リソースおよび情報) に続き、今年で3年目を迎えた JPOUG Advent Calendar 2014の2日目です。1日目は sakita さんの 12.1.0.2 Zone Maps 入門 Part II でした。 Ora…