- PR -

mvが失敗して残ってしまったプロセスを消したい。

投稿者投稿内容
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-11-28 16:30
koaraです、
いつもお世話になっております。

【使用環境】
Redhat Linux ES3(kernel 2.4.21-4)
samba-3.0.0

mvを使ってサーバー内でファイルを移動したところ、
失敗したのかプロセスが残ってしまいました。

*ファイルは11MBのテキストファイルです。

ps -auxwwでSTATが"D"になっています。

kill プロセスID
kill -9 プロセスID
kill -KILL プロセスID

どれを試しても消えません。
再起動するしかないでしょうか?

アドバイスよろしくお願いします。

情報になるか分かりませんが、
/proc/プロセスID/statusの中身を添付します。

引用:

Name: mv
State: D (disk sleep)
Tgid: 16489
Pid: 16489
PPid: 1
TracerPid: 0
Uid: 4630 4630 4630 4630
Gid: 2000 2000 2000 2000
FDSize: 32
Groups: 2000
VmSize: 4844 kB
VmLck: 0 kB
VmRSS: 792 kB
VmData: 156 kB
VmStk: 28 kB
VmExe: 52 kB
VmLib: 1440 kB
SigPnd: 0000000000000100
ShdPnd: 0000000000024103
SigBlk: fffffffffffffeff
SigIgn: 0000000000000000
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000


ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2006-11-28 19:12
おそらくディスク障害ですね。
ドライバ(モジュール)もしくはカーネル本体のバグの可能性もありますが。

引用:

koaraさんの書き込み (2006-11-28 16:30) より:
ps -auxwwでSTATが"D"になっています。


ディスクアクセスの結果が返ってくるのを待っている状態です。
通常は数ミリ秒で完了するものです。

引用:

kill プロセスID
kill -9 プロセスID
kill -KILL プロセスID

どれを試しても消えません。


Linuxの仕様です。
ステータスがDになっていると、プロセスにシグナルが配送されませんので。
# Alan Cox が「手抜きだと言われれば、そうなんだけど...」
# みたいなことをどこかで書いてました。

引用:

再起動するしかないでしょうか?


そうなります。
ディスク障害の可能性に配慮しつつ、ことを進めたほうが
よいかと思います。
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-11-29 11:02
ぼんす様
レスありがとうございます。

再起動で、
とりあえずのところ解消しました。

引用:

Linuxの仕様です。
ステータスがDになっていると、プロセスにシグナルが配送されませんので。



それで"kill"でいくらシグナルを送っても反応がなかったんですね。
納得です。

ディスク障害を疑って /var/log/messages を見たのですが、
それと思われるエラーは残っていませんでした。

関係するか分かりませんが、
mv が失敗してから再起動するまで

引用:

kernel: RPC: buffer allocation failed for task e16edcb4



というエラーが数分おきに発生していました。

RedHatのセキュリティ&アップデートのページに
それらしいkernelアップデートが見つかりました。

http://www.jp.redhat.com/support/errata/RHBA/RHBA-2004-550J.html

ぼんす様が仰られるように
カーネル本体のバグの可能性が高そうです。

Linuxのアップデートをしたことがないので、
不安もありますが、挑戦してみます。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2006-11-30 21:14
引用:

koaraさんの書き込み (2006-11-29 11:02) より:
ディスク障害を疑って /var/log/messages を見たのですが、
それと思われるエラーは残っていませんでした。


syslogにエラーが出力されるとは限りません。
ですが...

引用:

関係するか分かりませんが、
mv が失敗してから再起動するまで

引用:

kernel: RPC: buffer allocation failed for task e16edcb4



というエラーが数分おきに発生していました。


NFSのエラーですね。NFSマウントしている領域を使っていたのでしょうか。
だとすると、カーネルが原因でしょうね。
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-12-04 14:05
ぽんす様、
レスありがとうございます。

引用:

syslogにエラーが出力されるとは限りません。

ですが...


知りませんでした。
ハードウェア、カーネルの深刻なエラーはsyslogに出力されるものと思っていました。

引用:

NFSのエラーですね。NFSマウントしている領域を使っていたのでしょうか。
だとすると、カーネルが原因でしょうね。


ローカルディスクからNFSマウントしている領域にmvをしていました。

NFSのエラー => カーネルが原因という流れになる理由が分かりません。

"NFSとは"でぐぐると
『NFS はカーネルと密接に関係している部分が多く、性能を向上させるためには、カーネルレベルのチューニングが必要になります。』
と説明しているサイトがありました。

そういう観点での判断なのでしょうか?
また、カーネルアップデートで解消するのでしょうか?


情報追加します。
カーネル、NFSのバージョンは下記の通りです。

【カーネル】
2.4.21-4.ELsmp
【NFS】
redhat-config-nfs-1.0.13-1
nfs-utils-1.0.5-3


[ メッセージ編集済み 編集者: koara 編集日時 2006-12-04 14:11 ]
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2006-12-04 15:45
引用:

koaraさんの書き込み (2006-12-04 14:05) より:
NFSのエラー => カーネルが原因という流れになる理由が分かりません。

"NFSとは"でぐぐると
『NFS はカーネルと密接に関係している部分が多く、性能を向上させるためには、カーネルレベルのチューニングが必要になります。』
と説明しているサイトがありました。



密接どころか、LinuxのNFSクライアントはカーネルのFSモジュールです。
ext3や他のファイルシステムと同様にカーネル内で動作しています。

引用:

そういう観点での判断なのでしょうか?
また、カーネルアップデートで解消するのでしょうか?



解消するかもしれませんし、しないかもしれません。

現象が解決済みのバグだとすれば、
一番可能性の高い解決方法はカーネルのアップデートでしょう。
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-12-04 16:33
あしゅ様、
レスありがとうございます。

引用:

密接どころか、LinuxのNFSクライアントはカーネルのFSモジュールです。
ext3や他のファイルシステムと同様にカーネル内で動作しています。


知りませんでした、
いろいろ教えていただいて感謝です。

引用:

解消するかもしれませんし、しないかもしれません。

現象が解決済みのバグだとすれば、
一番可能性の高い解決方法はカーネルのアップデートでしょう。



RedHatのセキュリティー&アップデートに
"118839: RPC: buffer allocation failures for NFS client"
という修正があり、
エラーメッセージは同じだけれど症状は全く違うといったところで、
他に情報が見つかりません。

引用:

http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=118839



カーネルアップデートの方法を調べているのですが、
失敗したら二度と立ち上がらなくなりそうな気がして
二の足を踏んでおります。
F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 2006-12-04 20:52
> カーネルアップデートの方法を調べているのですが、
> 失敗したら二度と立ち上がらなくなりそうな気がして
> 二の足を踏んでおります。

RHELなら、up2dateするだけです。
自動的にRedhat Networkからダウンロード+インストールされます。

ただし、ベンダー固有の監視モジュールなど入っていると、
それなりにカーネルアップデートは面倒ですが…

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