]
トップ «前の日記(2009-06-02) 最新 次の日記(2009-06-08)» 編集

Yukiharu YABUKI の tDiary



このtDiaryを検索します。

2009-06-04 [長年日記]

_ ナイターは和声和製英語らしい

nighterを辞書で引くと、岩波国語辞書や知恵蔵では、和製英語との表記あり。野球のナイターの用法なら、night gameが妥当とのこと

_ 自炊比率を上げたら、自然に痩せてきた。

客先の作業が一段落して、自炊比率が上がったら、ちょっとづつ体重が落ちてきた。歩数が増えたのと、自分好みの味つけ(砂糖や油などの使用量)ができるようになったからかと自己分析

_ memo:5月度 kernel watch

Firefoxのプチフリーズ問題から始まった大論争(http://www.atmarkit.co.jp/flinux/rensai/watch2009/watch05a.html) man 2 fsync , man 2 fdatasync , man 2 sync_file_range をして読み進めてみると良い。下記はmanからの一部引用

説明

fsync() は、ファイル記述子 fd で参照されるファイルの内部で持っている デ ー タ (つまりバッファキャッシュページ) のうち修正されたデータを、そのフ ァイルが属するディスクデバイス (またはその他の永続ストレージデバ イ ス) に 転送 (「フラッシュ」) する。この呼び出しは転送が終わったとデバイスが 報告するまでブロックする。またファイルに結びついた メ タ デ ー タ 情 報 (stat(2) 参照) もフラッシュする。


fsync() の呼び出しは、ファイルが存在しているディレクトリのエントリがデ ィスクへ書き込まれたことを保証するわけではない。保証するためには明示 的 にそのディレクトリのファイル記述子に対しても fsync() する必要がある。


fdatasync() は fsync() と 同様であるが、メタデータの扱いが異なる。 fdatasync() は、それ以降のデータ読み込みを正しく扱うためにそのメタデ ー タ が必要にならない限り、変更されたメタデータをフラッシュしない。例えば 、 st_atime や st_mtime (それぞれ最終アクセス時刻 、 最 終 修 正 時 刻; stat(2) 参照) の変更はフラッシュを必要としない。なぜならこれらはそれ以 降のデータ読み込みを正しく扱うために必要ではないからである。一方、フ ァ イルサイズ (ftruncate(2) では st_size) の変更はメタデータのフラッシュが 必要である。 fdatasync() の狙いは、全てのメタデータをディスクと同期する 必 要のないアプリケーションに対して、ディスクアクセスを減らすことである 。

説明

sync_file_range() を使うと、ファイルディスクリプタ fd で参照されるオー プンされたファイルのディスクとの同期に関して、きめ細かな制御が可能と な る。


offset は、同期を行うファイルの領域の開始バイトである。 nbytes には同期 を行う領域の長さをバイト単位で指定する。 nbytes が 0 の場合は、 offset か らファイル末尾までの全バイトを同期する。同期はシステムのページサイズ の単位で行われる。 offset はページ境界にあわせて切り下げら れ 、 (off‐ set+nbytes-1) はページ境界にあわせて切り上げられる。

あと、ext3のデフォルトモードが変更されたので*1、必要に応じて(mount時に)modeを指定すること。詳しくはkernelのdocument/filesystem/ext3.txtを読め。writebackがデフォルトになったのでorderedにするかは、要検討

*1 いつから有効なんだろう。次のリリースから? changelog読めばわかるか。