ablog

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

Linux

vmstat でタイムスタンプを表示する

vmstat: Support for timestamps with '-t' & fix for '-wd' From now the vmstat can append a timestamp to each line in the VMSTAT and DISKSTAT mode. You can achieve that with the '-t' switch. The '-w' switch now works in the DISKSTAT mode too…

nethogs でプロセス別の通信量を調べる

nethogs はネットワークの top コマンド的なもので通信量の多いプロセスをランキング表示して、秒間通信量も見ることができる。 インストール sudo yum -y install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses* git clone https://github.com/rabo…

Linux で圧縮率の低い大きなサイズのファイルを作成する

Linux で圧縮率の低い大きなサイズのファイルを作成する方法をメモ。 $ dd if=/dev/urandom of=1gb.dat bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 12.9546 s, 82.9 MB/s $ ls -lh 1gb.dat -rw-rw-r-- 1 ec2…

SSH のタイムアウトを防止する(Keep Alive を有効にする)

事象 例えば、EC2 の Amazon Linux に ssh で接続して実行時間の長い*1コマンドを実行しているとタイムアウトして以下のメッセージが出力される。 packet_write_wait: Connection to **.***106.21 port 22: Broken pipe 解決策 クライアント(自分の場合は M…

スワップ領域がないとどうなるか

Systems Performance: Enterprise and the Cloud (English Edition)作者: Brendan Gregg出版社/メーカー: Prentice Hall発売日: 2013/10/07メディア: Kindle版この商品を含むブログを見るP.280 It is also interesting to ask what happen if no swap device…

sched: Interrupt Aware Scheduler

Anybody tested Oracle's interrupt aware CPU scheduler (https://t.co/vNb9mQ9M55). In addition Linux 4.12 brings 2 I/O schedulers BFQ & Kyber.— Stefan Koehler (@OracleSK) 2017年5月15日Linux のプロセススケジューラで割込み負荷の高いCPU以外にプ…

真のCPU使用率 by Brendan Gregg@Netflix

自分の「シンプルでシステマチックな〇〇性能分析」のルーツな面々のうちの2人*1 Brendan Gregg@Netflix と Tanel Poder@Gluent が素敵な絡みをしていたのでメモ。@brendangregg Could be useful: I once documented my understanding of the typical CPU co…

top の起源は VMS の MONITOR PROCESS/TOPCPU コマンド

top コマンドは William LeFebvre が VMS の MONITOR PROCESS/TOPCPU コマンドにインスパイアされて1984年にBSD 用に作ったのが起源らしい。へーと思ったのでメモ。Systems Performance: Enterprise and the Cloud作者: Brendan Gregg出版社/メーカー: Prent…

パッケージインストール時に NOKEY という Warning が出る

署名を検証するための適切なキーをインストールしていない場合は、メッセージに NOKEY という単語が含まれます: warning: tree-1.5.3-2.el6.x86_64.rpm: Header V3 RSA/SHA1 signature: NOKEY, key ID 57bbccba https://access.redhat.com/documentation/ja-…

Linuxで hostname コマンドはどこから情報を取っているか

/proc/sys/kernel/hostname から取っている 参考 linux - Where does uname get its information from? - Unix & Linux Stack Exchange linux - Where does `hostname` store the hostname that I've set? - Unix & Linux Stack Exchange

UEK ダウンロードサイト

インターネットに接続されていないサーバで Yum でパッケージをインストール出来ない場合は Oracle Linux Yum Server | Oracle, Software. Hardware. Complete. からダウンロードできる。例えば、Oracle Linux 6 の UEK なら Oracle Linux 6 (x86_64) UEK Re…

プロセスがファイルに読み書きしてる内容を覗き見する

確認方法 ファイルディスクリプタ番号を確認して ls -l /proc/<PID>/fd tail で見てみる tail -f /proc/<PID>/fd/21 実行例 $ while :; do date; sleep 5; done > foo.log & [1] 23801 $ ps -elf|egrep [2]3801 1 S oracle 23801 22232 0 76 0 - 16525 wait 11:03 pts/</pid></pid>…

Oracle Linux 7 でサービス一覧を確認する

$ systemctl list-unit-files --no-pager UNIT FILE STATE proc-sys-fs-binfmt_misc.automount static dev-hugepages.mount static dev-mqueue.mount static proc-sys-fs-binfmt_misc.mount static sys-fs-fuse-connections.mount static sys-kernel-config.…

Oracle Linux 7 でデフォルト起動カーネルを変更する

Oracle Linux 7 でデフォルト起動カーネルを変更する手順 カーネルのエントリを確認 # grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2 Oracle Linux Server (3.10.0-327.el7.x86_64 with Linux) 7.2 ★RHCK Oracle Linux Server (3.8.13-98.7.1.el…

Oracle Linux 6 でブロックデバイスとWWIDの対応を調べる

⁠25.3.1. WWIDWorld Wide Identifier (WWID) を使用するとデバイスを正確に識別することが可能です。 WWID 識別子は、 SCSI 標準で全 SCSI デバイスに必要とされるような永続的でシステムに依存しない ID となります。 すべてのストレージデバイスに対して必…

ローカルYumリポジトリでパッケージインストール時の依存関係を自動解決する

RHEL、CentOS や Oracle Linux などの Red Hat Enterprise Linux 派生ディストリビューションで、インターネットに接続できない環境でパッケージをインストールしたいけど、rpm でインストールしようとすると依存関係の解決が面倒な場合は、ローカルYumリポ…

tar.gz を解凍せずにその中の特定ファイルの中身を検索する

sar、vmstat、iostat、top などが日別に一つの tar.gz にアーカイブ・圧縮されているファイルを解凍せずに、top の中身を検索するのに使ったコマンド。 find ./ -type f -name '*.tar.gz'|sort -n|while read LINE do tar tfz ${LINE}|egrep '^./top_'|xargs…

Oracle Database の Wait Time と CPU Time が1つの Flame Graph に

Oracle Database の Wait Time と CPU Time が1つの Flame Graph に、素晴らしい! I/Oシステムコール発行時に実はカーネルコードが ON CPU で時間を使っていたというようなケースも腕ひしぎ十字固めで一本。それくらいならAWRレポートだけでも Awr1page 的…

プロセス別の PTE は /proc/[pid]/status の VmPTE で確認できる

$ cat /proc/1741/status Name: bash State: S (sleeping) Tgid: 1741 Pid: 1741 PPid: 1740 TracerPid: 0 Uid: 1200 1200 1200 1200 Gid: 54321 54321 54321 54321 FDSize: 256 Groups: 54321 54322 54323 54324 54325 54326 54327 VmPeak: 108516 kB VmSiz…

zone_reclaim_mode=1 だと NUMA のリモートノードのゾーンからページが割当られない?

zone_reclaim_mode=1 だと、NUMA ノードのゾーンごとに wmark_{min|low|high} が計算され、各ゾーンで空きメモリが wmark_low を下回るとページ回収が始まると理解している。 zone_reclaim_mode=1 の場合、ページ回収が追いつかないとリモートノードのゾーン…

nfsiostat で NFS の I/O レイテンシや IOPS を調べる

NFS で iostat の await と svctm のような情報を取れるツールが欲しいと思っていたら nfsiostat という素敵なツールを見つけた。await にあたるのが avg exe (ms)、svctm にあたるのが avg RTT (ms) だと思う。 iostat の await と svctm の意味は Linux の…

strace の -y や -yy でFD番号と共にファイルパスやIPアドレス・ポート番号を表示する

strace を使う場合、プロセスが起動している間に lsof や /proc/[pid]/fd でファイルディスクリプタ(FD)番号とファイルパスの対応を確認しておかないと、read(17, ... などと出力されている場合に、17 のファイルパスがわからなくなりますが*1、 strace 4.…

よく使う strace のオプション

Linux で strace を使ってシステムコールのトレースを調べる時によく使うオプションをメモ。 特にお気に入りのオプションは -T、-c、-ff & -o です。 書式 システムコールを詳細に追う tt: 行頭にタイムスタンプを出力(マイクロ秒) T: 行末にシステムコール…

perf-map-agent で Java のプロセスにアタッチすると AttachNotSupportedException が発生する

事象 perf-map-agent で Java のプロセスにアタッチすると "Unable to open socket file: target process not responding or HotSpot VM not loaded" というエラーが発生する。 Java を実行する。 $ java ... 別セッションで perf-map-agent で実行中の Java…

OpenJDK7u101 を Oracle Linux 6.6 でビルドする

Mercurial をインストールする $ curl -L -O https://www.mercurial-scm.org/release/centos6/RPMS/x86_64/mercurial-3.7.3-1.x86_64.rpm $ sudo rpm -ivh mercurial-3.7.3-1.x86_64.rpm OpenJDK7u60 のソースコードを Mercurial リポジトリから clone する …

「Linus Torvalds、最近のCPUのPage Faultのコストにご不満の様子」が面白かった

本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子 の出典元の Google+ の Linus Tovalds の投稿とそれに対する Brendan Gregg らのコメントが興味深かったのでメモ。 Linus Torvalds...I wrote a small test-program to pinpoint this …

pcstat でファイルのページキャッシュへの乗り具合を調べる

ダウンロード $ cd /usr/local/bin $ curl -L -o pcstat https://github.com/tobert/pcstat/raw/2014-05-02-01/pcstat.x86_64 $ chmod 755 pcstat 使ってみる $ dd if=/dev/urandom of=testfile bs=1M count=10 10+0 records in 10+0 records out 10485760 b…

Java Mixed-Mode Flame Graphs で Java の CPU ネックをフルスタックで分析する

Brendan Gregg (NETFLIX の Senior Performance Architect) 作の Java Mixed-Mode Flame Graphs を使うと Java のプロセスが CPU ネックのケースで、Java アプリケーションコード、JVM(HotSpot VM)、Linux Kernel のどのレイヤーのどの関数がボトルネックに…

実行中のマルチスレッドプログラムの特定スレッドのみ停止(SIGSTOP的な)させる方法

@yoheia gdb -p LWP で特定のスレッドだけ止められますよ。— Tsukasa Hamano (@hamano) 2016年3月29日@hamano "gdb -p LWP" でサクッとできました!ありがとうございます。 $ ps -u grid -lLf|grep css$ gdb -p 3449-> LWP:3449 のステータスが t になりまし…

GNOME のウィジットが表示されなくなった

事象 ftrace を使っていたら不安定になったので、再起動したら GNOME のウィジット(時刻表示の近くの電源、ワイアレスネットワークなどが表示されているところ)が表示されなくなった。 対処 ~/.gconf/apps/panel/general を削除する 参考 @IT:GNOMEパネル…