アカウント名:
パスワード:
Linuxカーネル使っておきながら、システム全体が飛ぶって所に開いた口が塞がらないのですが。まさか、データ格納するストレージをケチった上に/var とか/home あたりにデータ書くようにしたんで起動しようにも起動できなくなってるんじゃないかとか。# 真面目に考えたら、別にデータ専用のストレージを置きますよね。# 回路コスト考えたら数百ドルも増えやしないだろうに…
で、ウォッチドッグタイマも入れないなんて、この手のシステムで考えられないですしね。信頼性を考えたら、CPU備え付けだけじゃなくて外部にウォッチドッグ入れるとかするものですが。
今回のやつがそうだとは断定できないけどマルチタスクにおけるウォッチドッグタイマというのは結構めんどくさい・各プロセスが正常に動作しているか監視するタスク・監視タスクが異常を検出せず、自身が正常に動作していたら外部ウォッチドッグを叩く監視条件に間違いや漏れがあったらアウト。経験少ないと組み合わせ爆発起きやすい実装しちゃうことも間々あるものです。
最下位のidleタスクでウォッチドッグを叩くそれが止まったら再起動単純に止まったものを再起動させるのがウォッチドッグ・タイマー
そうなんですが、大抵の…Linuxカーネルなんか特に…Kernel Panicになったら、WDT叩かなくなるのでWDTが起動して強制再起動云々に入るし、そこまで行かないとしたら、地上との送受信を担当するタスクまで停まるというのが何なんだろうという感じがあるんですよね。そこら辺の対策のためのコードというのは、Linuxカーネルなら十分すぎるくらいに色々盛り込まれていますから。とりあえず、最低でもKernelが生きていてWDTを随時叩いてるという話になりますので、そうなると、別の要因・要はハードウェアの問題なのかな。と。
単に通信周りを受け持つ「プロセスが」止まったんでしょう。そのプロセスがどのくらいの範囲をカバーしてたかはともかく
> 最下位のidleタスクでウォッチドッグを叩く> それが止まったら再起動> 単純に止まったものを再起動させるのがウォッチドッグ・タイマー
昔、RFIDのリーダが機能しなくなる問題の解析をやった事がありましたが、その原因がもろにidleタスクでWDTを叩けなくなる→WDTタイムアウトによる再起動でした。WDTを叩くなんてインナーループの中でやるもんだろう、「idleタスクでWDTを叩く」なんて設計は何の冗談なんだろうか、って思いましたが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
クラッシュって… (スコア:1)
Linuxカーネル使っておきながら、システム全体が飛ぶって所に開いた口が塞がらないのですが。
まさか、データ格納するストレージをケチった上に/var とか/home あたりにデータ書くようにしたんで起動しようにも起動できなくなってるんじゃないかとか。
# 真面目に考えたら、別にデータ専用のストレージを置きますよね。
# 回路コスト考えたら数百ドルも増えやしないだろうに…
で、ウォッチドッグタイマも入れないなんて、この手のシステムで考えられないですしね。
信頼性を考えたら、CPU備え付けだけじゃなくて外部にウォッチドッグ入れるとかするものですが。
Re:クラッシュって… (スコア:1)
今回のやつがそうだとは断定できないけどマルチタスクにおけるウォッチドッグタイマというのは結構めんどくさい
・各プロセスが正常に動作しているか監視するタスク
・監視タスクが異常を検出せず、自身が正常に動作していたら外部ウォッチドッグを叩く
監視条件に間違いや漏れがあったらアウト。経験少ないと組み合わせ爆発起きやすい実装しちゃうことも間々あるものです。
Re: (スコア:0)
最下位のidleタスクでウォッチドッグを叩く
それが止まったら再起動
単純に止まったものを再起動させるのがウォッチドッグ・タイマー
Re:クラッシュって… (スコア:1)
そうなんですが、大抵の…Linuxカーネルなんか特に…Kernel Panicになったら、WDT叩かなくなるのでWDTが起動して強制再起動云々に入るし、そこまで行かないとしたら、地上との送受信を担当するタスクまで停まるというのが何なんだろうという感じがあるんですよね。
そこら辺の対策のためのコードというのは、Linuxカーネルなら十分すぎるくらいに色々盛り込まれていますから。
とりあえず、最低でもKernelが生きていてWDTを随時叩いてるという話になりますので、そうなると、別の要因・要はハードウェアの問題なのかな。と。
Re: (スコア:0)
単に通信周りを受け持つ「プロセスが」止まったんでしょう。
そのプロセスがどのくらいの範囲をカバーしてたかはともかく
Re:クラッシュって… (スコア:1)
> 最下位のidleタスクでウォッチドッグを叩く
> それが止まったら再起動
> 単純に止まったものを再起動させるのがウォッチドッグ・タイマー
昔、RFIDのリーダが機能しなくなる問題の解析をやった事がありましたが、その原因がもろにidleタスクでWDTを叩けなくなる→WDTタイムアウトによる再起動でした。WDTを叩くなんてインナーループの中でやるもんだろう、「idleタスクでWDTを叩く」なんて設計は何の冗談なんだろうか、って思いましたが。