Date: Sat, 24 Mar 2018 08:23:28 +0900 From: =?UTF-8?B?SGlyb28gT25vICjlsI/ph47lr5vnlJ8p?= <hiroo.ono+freebsd@gmail.com> To: freebsd-users-jp <freebsd-users-jp@freebsd.org> Subject: [FreeBSD-users-jp 96193] =?utf-8?b?ZGlzayBJL08g44KS5Yi26ZmQ44GZ44KL5omL5q6144GoIGdlb20g?= =?utf-8?b?44Gr44Gk44GE44Gm44Gu6LOq5ZWP?= Message-ID: <CANtk6SiE=LWvtWvBRT9sjzu3LuaYgoVAL5=WMQ7br6K7Oe=j%2Bw@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
小野寛生です。 いくつか質問です。 (1) ディスクI/O を毎秒一定の値以下に抑える方法はありませんでしょうか。 ちょっと調べたのですがわかりませんでした。 (2) geom_sched の仕組みを使えばできるかもと思って geom_sched のアルゴリズム のモジュールをおよそ次のような感じで実装してみたのですが、gstat で見ると read は制限されるものの linear な感じではなく、write は全然効いていないぽいです。 src/sys/geom/sched/gs_scheduler.h に実装しろと書かれている関数のうち、 gs_start() で渡された bio を queue に入れ、 gs_done() で bio->bio_bcount を積算し、 gs_next() で積算した値が一定値以下なら bio を queue から返す。 あとは gs_init() でタイマーを設定し、一定時間ごとに積算している カウンタ変数を 0 にする。 /usr/include/sys/bio.h の struct bio の説明では bio_bcount は "valid bytes in buffer" となっていますが、この値の単位は bytes で合っている でしょうか。 また、読み書きされる量は上記のように bio_counts を見るのでいいのでしょうか。 すみませんが、よろしくお願いします。
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANtk6SiE=LWvtWvBRT9sjzu3LuaYgoVAL5=WMQ7br6K7Oe=j%2Bw>
