実行譜類,実装に関わらず一定。
希哲12年12月1日仮実装。
ulimit -c
}{コア譜類}(34)昨日の時点では「間に合わせ」に近い感覚だったが,調整を続けてみると機能・性能ともに十分なものになったため,4月のデルン出力録整備で作った現行方式をいったん正式採用,出力録保存機能に関しては一段落とすることにした。
deln.log
肥大化問題も最終的に解決したといってよさそうだ。
deln_log
の実装は将来的な選択肢の一つとして保留しておく。
昨日の時点でも概ね上手く動いていたが,一つだけ気にかかることがあった。
watch
で deln.log
の変化を観察してみると,tail
が切り詰める一瞬の合間に,数十kBから数MBへサイズが極端に増えることがあった。しかも大きい方のサイズは減ることなく,微増を続けている様子だった。
以前の deln.log 肥大化問題に比べればずっと緩やかなもので,直ちに問題があるほどではなかったが,時限爆弾のような気持ち悪さがあった。
挙動からして,tail
で譜類を置換した後も tee
が累積した出力で再作成し続けているとしか考えられなかった。最初はバッファか何かが上手く噛み合っていないのかと思い stdbuf
で調整してみたが変わらず,結局,tee -a
を使うことで問題は解消した。
これは tee
の仕様なのか,もっと基本的な譜類司組や司組呼応の問題なのかは分からない。
まずは速度を改善してみようと tail -n 1000
を tail -c 50kB
に変えてみたりもしたが,文字交度を壊して Bash が command substitution: ignored null byte in input
という警告を出すので止めておいた。そこまでの性能も必要なさそうだ。
/tmp/
}{第三次宣伝攻勢}{制危}{希哲15年4月23日の開発}{録化}{デルン出力録整備}{1,000行}{デルン出力録}(60)いったん終了。
deln が deln.fcgi を起動する際,deln.log に出力を書き出すようにし,deln 実行の度に起動中であれば tail を使い最新1,000行に縮め,再起動時には deln.log の内容を deln.log.2 に上書きするようにした。
自動再起動のため deln は cron で毎秒実行されるようになっているので,異常終了時に直近の出力が簡単に確認出来るようになった。
deln.fcgi の出力は手定め環境では常に表示させているが,本番環境では cron 任せだったため確認手段が無かった。過去にも何度か録化は試みていたが,周辺実装の激しい変化で削除されていた。
それでも大抵の問題は大体見当が付いていたが,KNEST 認証不具合の反省と第三次宣伝攻勢への備えのため,ここで整備することにした。
KNEST 認証不具合はまだ原因が推定しやすかったから良かったものの,大規模集客が始まれば,本番環境特有の握接や高負荷状況での不具合多発が予想される。
デルン出力録はウェブ捌きの握接録より詳細だが,個人情報保護や制危の観点からあまり広範囲・長期間保存したくない。
それ以前に,放っておけばあっという間にディスク容量を食い尽くしてしまう。
不具合調査に必要なだけ /tmp/ 以下に保存しておくことにした。