- PR -

"pstree -a | grep smbd" とすると親プロセスが大量にいる

投稿者投稿内容
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2005-09-29 13:56
ぽんす様 いつもありがとうございます。

引用:

us sy id wa を合計しても50程度にしかならず、100にはほど遠いことが
気になります。カーネルがまともに動いていないんじゃないか、という
疑いを持ってしまうんですが、とりあえずそれは見なかったことにすると...

load average は三つとも2程度ですね。高めの水準で安定している。
もっと細かく vmstat をとってみないとアレですが、CPU使用率はたいした
ことなさそうだし、ほとんどがディスクI/O待ちなのではないでしょーか。



vmstat 3 としたところus sy id waの合計が1行目以外は100になりました。
現在は
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 14516 18628 72348 862692 0 0 0 12 106 22 0 0 100 0
0 0 14516 18628 7 2348 862692 0 0 0 0 104 14 0 0 100 0
0 0 14516 18620 72356 862692 0 0 0 5 106 19 0 0 100 0
0 0 14516 18612 72364 862692 0 0 0 5 105 17 0 0 100 0
0 0 14516 18612 72364 862692 0 0 0 0 105 16 0 0 100 0
0 0 14516 18604 72372 862692 0 0 0 7 107 19 0 0 100 0
0 0 14516 17804 72372 862432 0 0 0 196 208 177 1 1 98 0
0 0 14516 17508 72388 862696 0 0 2601 80 348 431 4 2 67 26
0 0 14516 19492 72396 860880 0 0 0 81 145 47 6 0 94 0
0 0 14516 19856 72396 860888 0 0 0 0 111 23 0 0 100 0
0 0 14516 19848 72400 860892 0 0 0 75 112 25 0 0 100 0
1 0 14516 19848 72396 860896 0 0 0 0 105 18 0 0 100 0
0 0 14516 19844 72400 860896 0 0 0 5 108 20 0 0 100 0
0 0 14516 20896 72440 860940 0 0 3817 3027 694 735 1 5 26 67
0 0 14516 20896 72440 860952 0 0 0 580 314 561 1 2 95 2
0 0 14516 20888 72448 860952 0 0 0 37 108 22 0 0 100 0
0 0 14516 20888 72444 860956 0 0 0 0 105 15 0 0 100 0
0 0 14516 20880 72452 860956 0 0 0 5 106 21 0 0 100 0
0 0 14516 20868 72464 860964 0 0 0 244 208 243 0 1 97 1
0 0 14516 20864 72464 860968 0 0 0 0 106 19 0 0 100 0
0 0 14516 20856 72472 860968 0 0 0 56 109 26 0 0 100 0

という状態です。
vmstat自体初めて見ているのでこのディスクI/Oの値が正常なのかわかりません。

ちなみにsambaのプロセスは
pstree -al | grep smbd

|-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| |-smbd -D
| `-smbd -D

という状態で今日は通常時よりもセッションが少ない方です。

postgresの方は

9434 ? S 0:08 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data -D data
9438 ? S 0:55 postgres: stats buffer process
9439 ? S 0:43 postgres: stats collector process

となっていました。

引用:

最近になって急にこういう症状が出てきたのだとすると、
・ユーザの利用が増えた
という可能性もありますが、
・ディスクが壊れかけていて読みにくくなっている
という可能性もあるかと思います。


最近の変化としてはsambaのセッションは変わらないと思いますが、
ファイルからDBへ移行している過程でpostgresの負荷は高くなっているかもしれません。

ディスクが壊れかけているか調べるにはどうしたらいいのでしょう?
/procに統計か何かがあるのでしょうか?



少し追加させてください。

引用:

ps -alx
としたところstat が "D" のプロセス
5 132 27362 1 15 0 4440 992 down D ? 0:00 smbd -D
となっていました。



と昨日報告したのですが、messagesに気になるログが残っていました。

grep "kernel: lease broken" /var/log/messages
Sep 28 11:18:53 servername kernel: lease broken - owner pid = 27362
Sep 28 11:19:37 servername kernel: lease broken - owner pid = 27524
Sep 28 11:21:10 servername kernel: lease broken - owner pid = 27524
Sep 28 12:08:49 servername kernel: lease broken - owner pid = 27524
Sep 28 12:14:42 servername kernel: lease broken - owner pid = 24236
Sep 28 12:23:35 servername kernel: lease broken - owner pid = 24236
Sep 28 12:24:52 servername kernel: lease broken - owner pid = 24236
Sep 28 12:27:56 servername kernel: lease broken - owner pid = 24236
Sep 28 12:32:43 servername kernel: lease broken - owner pid = 24236
Sep 28 12:34:01 servername kernel: lease broken - owner pid = 24236
Sep 28 12:44:35 servername kernel: lease broken - owner pid = 24236
Sep 28 12:46:59 servername kernel: lease broken - owner pid = 24236
Sep 28 12:48:16 servername kernel: lease broken - owner pid = 24236
Sep 28 12:49:33 servername kernel: lease broken - owner pid = 24236
Sep 28 12:50:50 servername kernel: lease broken - owner pid = 24236
Sep 28 12:56:06 servername kernel: lease broken - owner pid = 24236
Sep 28 12:57:23 servername kernel: lease broken - owner pid = 24236
Sep 28 13:35:15 servername kernel: lease broken - owner pid = 31147
Sep 28 13:41:48 servername kernel: lease broken - owner pid = 30958
Sep 28 14:11:12 servername kernel: lease broken - owner pid = 660
Sep 28 14:12:29 servername kernel: lease broken - owner pid = 660
Sep 28 14:12:51 servername kernel: lease broken - owner pid = 31515
Sep 28 14:14:03 servername kernel: lease broken - owner pid = 549
Sep 28 14:15:03 servername kernel: lease broken - owner pid = 549
Sep 28 14:16:04 servername kernel: lease broken - owner pid = 549
Sep 28 14:16:41 servername kernel: lease broken - owner pid = 960
Sep 28 14:17:58 servername kernel: lease broken - owner pid = 960
Sep 28 14:19:15 servername kernel: lease broken - owner pid = 960
Sep 28 14:39:26 servername kernel: lease broken - owner pid = 398
Sep 28 14:40:43 servername kernel: lease broken - owner pid = 398
Sep 28 14:46:21 servername kernel: lease broken - owner pid = 398
Sep 28 14:47:38 servername kernel: lease broken - owner pid = 398
Sep 28 15:00:02 servername kernel: lease broken - owner pid = 398
Sep 28 15:00:52 servername kernel: lease broken - owner pid = 960
Sep 28 16:05:19 servername kernel: lease broken - owner pid = 549
Sep 28 16:07:20 servername kernel: lease broken - owner pid = 549

先頭のpidとps -ax でdownとなっていたプロセスのpidが同じです。
anights
ぬし
会議室デビュー日: 2003/05/22
投稿数: 277
お住まい・勤務地: 東京
投稿日時: 2005-09-29 18:48
引用:

koaraさんの書き込み (2005-09-29 13:56) より:
Sep 28 16:05:19 servername kernel: lease broken - owner pid = 549



この辺ググるとsambaの設定でoplocksの話とかが引っかかりますが
(ファイルビジーになるとか)
oplocks = noとかしたらどうなんでしょうねぇ。
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2005-09-29 19:44
anights様 こんばんは。

実はちょうど私も smbstatus で
Locked files:
が大量に見つかったので"lease broken"を調べていてoplocksに行き当たったところです。

ただ、ファイルロックをしないというのがどういう事になるのか怖いです。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-09-29 19:59
こんばんわ.
引用:

kazさんの書き込み (2005-09-28 15:54) より:
こんにちわ.

smbd は session 毎に daemon を持ち上げるのでは?
そういう意味ではなく?
最初に待ち受けているのは1つのはずですけど.


いまさらですが,確認したら2つでした.
ゴメンナサイ.
※nmbd は1つでしたが.
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2005-09-29 20:12
kaz様 ありがとうございます。

引用:

いまさらですが,確認したら2つでした.
ゴメンナサイ.
※nmbd は1つでしたが.



今さらなんてとんでもないです。
ありがとうございます。

pstree
でinitの直下にプロセスが1つということですか?
それでしたら私の環境では今もnmbd,smbdとも1つでした。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-09-29 20:23
引用:

koaraさんの書き込み (2005-09-29 20:12) より:

pstree
でinitの直下にプロセスが1つということですか?
それでしたら私の環境では今もnmbd,smbdとも1つでした。


です.
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2005-09-30 11:35
anights様 おはようございます。

kernel oplocks、sambaのoplocksという仕組みで
linux,windows,nfsというような異なるOS間やnfsしたファイルに対して
排他処理を実現しているとは知りませんでした。

参考url:
http://www.samba.gr.jp/project/translation/2.2.5/manpages/smb.conf.5.html#KERNELOPLOCKS

知らなかったのが幸いで、
今までwindowsのクライアントアプリケーションでは必ずlockファイルを作り
linux側もそのlockファイルを確認するという運用をしてきました。

smb.confに
oplocks = no
level2 oplocks = no
と記述するだけで解決できるかもしれません。

あとはディスクI/Oの負荷の原因を追ってみるつもりです。
本当にありがとうございます。
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2005-09-30 14:14
自己レスです。

引用:

実はちょうど私も smbstatus で
Locked files:
が大量に見つかったので"lease broken"を調べていてoplocksに行き当たったところです。



smbdを再起動しても消えないので、ファイルを見ているだけかなと調べました。
/var/cashe/samba/locking.tdb
というファイルがありました。バイナリだったので編集はできませんでしたが、
なかにパスらしい記述がいくつもありました。

次にこのファイルの情報を表示しているだけなら、安全に消す方法がありそうだと思い調べると
testparm | more

smb.confのdefault設定に
dead time = 0
という記述があり
dead time = 1
として1分待つことで無事smbstatusのLocked files:を消すことが出来ました。

もし同じ境遇に行き当たった方の参考になれば幸いです。

スキルアップ/キャリアアップ(JOB@IT)