cygwinでwatchはprocps、clearはcursesを入れると使えるようになる
disk fullは次のように、bs * count サイズのファイルが作れる。
> dd if=/dev/zero of=zero.dat bs=1M count=1024
SQLiteではディレクトリエントリのfsyncもちゃんとできている
「ウェブアプリケーションにおけるHDDの正しい使い方」のコメントで、
> SQLite のジャーナルが消失する問題 (ディレクトリエントリを fsync してなかった)
> といったものもありましたし
SQLiteのソースで、どうやっているか確認。
ちゃんとfsyncしている。
Windowsはいいんですかね。
「安全なファイル書き換えにはディレクトリも fsync すべき。だけど Perl でどう書くか」
ここも参考になりました。
ext3がwritebackモードになったり、renameが暗黙にfsyncを行うもそうですが、
こんなのがごく最近に起こっていることが驚きです。
DELL OPTIPLEX 760にCentOS 5.3で起動が安定しない
起動が安定しない。起動後すぐに自動的にリブートしてしまうことがある。
そのまま何度か再起動していると成功したり、2、3度試しても駄目だったら、
kernelの起動パラメータにpci=nommconf noacpi noamp noapic irqpollをつけたり
(このうちのいくつかをつけたり)しているうちに起動できる。
5.5にアップすると安定はする。
5.3を入れて、ソフトウェアアップデーターでアップデートすると5.5に上がるとは知らなかった。
起動パラメータはgrubのメニューが表示されているときに e キーを押して、
さらにkernelの行を選択して e キーで編集。
編集後に Enter キーで確定して、b キーで起動できる。
pythonのThreadingTCPServerで大量にスレッドを生成するとエラーになる
Linuxだとスタック用のメモリ不足が原因にあるようです。
> threading.stack_size(64*1024)
を入れると回避できます。
ulmit -sでも回避できます。
スレッドごとにスタックって持っているんですね。
今更ながらあまり気にしたことがありませんでした。
スタックオーバーフローのハンドリング
http://www.nminoru.jp/~nminoru/programming/stackoverflow_handling.html
-
- -
今更ながら、TCPのコネクション。分かりやすかったです。
http://www5e.biglobe.ne.jp/~aji/3min/39.html
Pythonではclose()はダミーで、GCでソケットがクローズされます。
ただし、PythonのGCは主に参照カウンタで管理されているので、循環参照さえしなければすぐに解放されます。
でも今すぐクローズしたい場合は、socket.shutdown(socket.SHUT_WR) のようにすることでとりあえずFINを送出できます。