git: BIOQ - Create a more sophisticated bursting mechanic for wr

看板DFBSD_commit作者時間16年前 (2009/08/20 15:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 4afeea0db0b1a8e6b5132e06a39111a64ad2487e Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Wed Aug 19 23:27:58 2009 -0700 BIOQ - Create a more sophisticated bursting mechanic for writes. * Add sysctls: vfs.bioq_reorder_minor_interval vfs.bioq_reorder_minor_bytes vfs.bioq_reorder_burst_interval vfs.bioq_reorder_burst_bytes * Reads are prioritized over writes. Every N (minor_interval) reads up to (minor_bytes) worth of writes are allowed in order to avoid complete write starvation (which is just as bad as complete read starvation). * If a large amount of write data is queued to devices the related buffer cache buffers will be locked. This is not a good place to be as any readers trying to access those buffers will then also block. When the amount of data is excessive the (burst_interval) and (burst_bytes) comes into play. This primarily helps HAMMER flush cycles. * Try to keep vfs.hirunningspace reasonably bounded. We do not want too large a value because of the above buffer locking issue. On the flip side, we can have large numbers of delayed-write dirty buffers sitting around because they aren't locked. * When the buffer cache is hitting hidirtybufspace the buffer daemons now try to keep the vfs.runningbufspace at hirunningspace levels instead of lorunningspace levels in order to trigger the bioq's bursting mode. Summary of changes: sys/dev/disk/nata/ata-queue.c | 4 +- sys/kern/subr_disk.c | 83 +++++++++++++++++++++++++++++++---------- sys/kern/vfs_bio.c | 77 ++++++++++++++++++++++++++++---------- sys/sys/buf.h | 7 ++- 4 files changed, 127 insertions(+), 44 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4afeea0db0b1a8e6b5132e06a39111a64ad2487e -- DragonFly BSD source repository
文章代碼(AID): #1AZFIsQe (DFBSD_commit)