Akira's Tech Notes

Java/JVM | GNU/Linux | Emacs/Lisp | 知的好奇心駆動

header-icon
ネイティブでない日本語で思い付くことや気になることをダラダラ書く、体裁とかは気にしない。読みづらいと感じた時に随時更新する。

[レシピ]ローカルシステムのUIDの抽出

LDAPにユーザID定義時にローカルシステムのUIDと被らないように、ローカルシステムのUIDと GIDを抽出してみた。

ユーザID、1000番代以下はシステム予約番号のことがすぐわかる。

$ cat /etc/passwd | awk -F: '{print $3 "\t" $1}' | sort -n
0	root
1	bin
2	daemon
8	mail
14	ftp
32	rpc
33	http
40	named
68	uuidd
74	dovenull
76	dovecot
81	dbus
84	avahi
87	ntp
89	mysql
99	nobody
102	polkitd
124	colord
169	transmission
191	systemd-journal-gateway
192	systemd-timesync
193	systemd-network
194	systemd-bus-proxy
195	systemd-resolve
241	mediatomb
439	ldap
998	dnsmasq
999	git
1000	akira
1002	amule

グループID一覧

$ cat /etc/group | awk -F: '{print $3 "\t" $1}' | sort -n
0	root
1	bin
2	daemon
3	sys
4	adm
5	tty
6	disk
7	lp
8	mem
9	kmem
10	wheel
11	ftp
12	mail
14	uucp
19	log
20	utmp
21	locate
24	rfkill
25	smmsp
32	rpc
33	http
40	named
50	games
54	lock
68	uuidd
74	dovenull
76	dovecot
81	dbus
84	avahi
87	ntp
89	mysql
90	network
91	video
92	audio
93	optical
94	floppy
95	storage
96	scanner
97	input
98	power
99	nobody
100	users
102	polkitd
124	colord
169	transmission
190	systemd-journal
191	systemd-journal-gateway
192	systemd-timesync
193	systemd-network
194	systemd-bus-proxy
195	systemd-resolve
241	mediatomb
439	ldap
998	dnsmasq
999	git
1002	g001
1003	g002
1004	g003
1005	amule

sort コマンドで数字順でソートするためのオプションが -n であることを復習致しました。

[レシピ]LDAPサーバの構築

夏休み中にOpenLDAPの構築復習を行いました。ここでメモしておきます。

[メモ]findでファイル更新日付順で表示する

PJではメンバたち日々の作業成果物がどこかの共有ディレクトリに格納されているでしょう。 共有ディレクトリに最近更新や追加されたファイルを見たい時がよくあることです。 いちいち作業担当者に聞くのもうざいので。 findxargs コマンドを駆使して実現して みた。

$ find . -type f -print0 | xargs -0 ls -alt
  • find -type f はファイルのみを対象とする
  • find -print0 は検出されたファイルのフルパスをNULLキャラクターで分割して出力する
  • xargs -0 もしくは xargs --null 入力ストリームの分割はNULLキャラクターを用いる

[検証]BytemanでWeblogicのアプリをトレースする

Weblogicのインスツルメンテーション機能に対して以下の課題が抱えていたため、Bytemanを使 うことにしました。

  • DisplayArgumentsAction でメソッドの引数と戻り値が取れない
  • 採集結果がバイナリのため、利用不便(テキスト形式が望ましい)
  • アプリ再デプロイするとインスツルメンテーション定義が消える

Byteman はRed HatがリードするJBoss Communityプロジェクトのひつとであるため Weblogic でちゃんと動くが不安でした。検証したところ問題なく動いたので手順を残してお きます。

[検証]Weblogicのインスツルメンテーション機能

トラブルシューティング時にログでアプリケーションの動作を追うことが常套手段と言えるで しょう。しかし、アプリケーションにログ出力処理が実装されていないケースもあり得るで しょう。先日そのようなケースに遭遇してまして、メソッドのエントリとリターンのポイント ですらログ出力してくれなかった。コード規模が小さいのであれば、すぐログ出力処理を実装 すればいいでしょうけど、大規模の場合それなりに大変でしょう。

幸い、Weblogicサーバにはアプリケーションケーションの動作イベントを記録するような機能 が提供されている。それはWebLogic診断フレームワークのインスツルメンテーション機能で す。以下はインスツルメンテーション機能の使い方を検証します。

[メモ]JDeveloper 11g/12c 開発環境の整備

Archlinux環境にJDeveloper 11g/12c 複数バージョンインストール時のメモ。

[検証]syncシステムコールの性能について

商用(本番運用)にて、なんらかの障害発生時にログがロストしないようにトランザクション ポイントで sync システムコールを呼び出して汚れたページをディスクへ書き込む方法が あるのですが、それは普通のHDDに置いては性能的に非現実的です。理由は IOPS です。

1 IOPSとは

ハードディスクなどの記憶装置の性能指標の一つで、ある条件の元で1秒間に読み込み・書き込 みできる回数のこと。wikipedia から参照するとHDDのIOPS数値は以下のようです。

Device Type IOPS Interface
7,200 rpm SATA drives HDD ~75-100 IOPS SATA 3 Gbit/s
10,000 rpm SATA drives HDD ~125-150 IOPS SATA 3 Gbit/s
10,000 rpm SAS drives HDD ~140 IOPS SAS
15,000 rpm SAS drives HDD ~175-210 IOPS SAS

つまり、HDDに置いて秒間同期書き込み回数の上限はしょせん200回(多めに)ぐらいです。

さあ、実際はどうなるでしょうか?実機検証してみましょう。