From owner-freebsd-hackers Tue Mar 5 12:42:58 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from bingnet2.cc.binghamton.edu (bingnet2.cc.binghamton.edu [128.226.1.18]) by hub.freebsd.org (Postfix) with ESMTP id 4152237B402 for ; Tue, 5 Mar 2002 12:42:55 -0800 (PST) Received: from onyx (onyx.cs.binghamton.edu [128.226.140.171]) by bingnet2.cc.binghamton.edu (8.11.6/8.11.6) with ESMTP id g25KgrP12529 for ; Tue, 5 Mar 2002 15:42:53 -0500 (EST) Date: Tue, 5 Mar 2002 15:41:09 -0500 (EST) From: Zhihui Zhang X-Sender: zzhang@onyx To: freebsd-hackers@freebsd.org Subject: A weird disk behaviour Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG I am doing some raw I/O test on a seagate SCSI disk running FreeBSD 4.5. This situation is like this: +-----+----+----+----+----+----+----+----+----+----+---+------ | | | | | | | | | | | | .... +-----+----+----+----+----+----+----+----+----+----+---+------ Each block is of fixed size, say 8192 bytes. Now I have a user program writing each contiguously laid out block sequentially using /dev/daxxx interface. There are a lot of them, say 15000. I write the blocks in two ways (the data used in writing are garbage): (1) Write each block fully and sequentially, ie. 8192 bytes. (2) I still write these blocks sequentially, but for each block I only write part of it. Exactly how many bytes are written inside each block is determinted by a random number between 512 .. 8192 bytes (rounded up a to multiple of 512 bytes). I find out the the performance of (2) is several times better than the performance of (1). Can anyone explain to me why this is the case? Thanks for any suggestions or hints. -Zhihui To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message