From owner-freebsd-fs@FreeBSD.ORG Wed May 19 08:27:10 2010 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 462F31065672 for ; Wed, 19 May 2010 08:27:10 +0000 (UTC) (envelope-from tzim@tzim.net) Received: from golanth.tzim.net (unknown [IPv6:2001:41d0:1:d91f:21c:c0ff:fe4b:cf32]) by mx1.freebsd.org (Postfix) with ESMTP id D94E98FC12 for ; Wed, 19 May 2010 08:27:09 +0000 (UTC) Received: from 12rf.tzim.net ([82.232.60.244] helo=[192.168.0.10]) by golanth.tzim.net with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.71 (FreeBSD)) (envelope-from ) id 1OEecP-0003WM-00 for freebsd-fs@freebsd.org; Wed, 19 May 2010 10:27:09 +0200 Message-ID: <4BF3A0DD.4080404@tzim.net> Date: Wed, 19 May 2010 10:27:09 +0200 From: Arnaud Houdelette User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4 MIME-Version: 1.0 To: freebsd-fs@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Authenticated-User: tzim@tzim.net X-Authenticator: plain Subject: ZFS Recordsize tuning & transmission (bittorent daemon) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 08:27:10 -0000 Hi, I'm using the transmission bittorent client on a single drive ZFS pool (name unsafe). Downloading is mostly OK. But moving a downloaded file to an other zpool (zraid, name tank) takes ages. The pools : [carenath] ~> zpool status pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz1 ONLINE 0 0 0 gptid/ffb4e96a-d497-11de-96bd-001d923bc7a0 ONLINE 0 0 0 gptid/9fb111f8-d426-11de-99bc-001d923bc7a0 ONLINE 0 0 0 gptid/0902db4e-d462-11de-96bd-001d923bc7a0 ONLINE 0 0 0 gptid/e3838ce5-d4ed-11de-96bd-001d923bc7a0 ONLINE 0 0 0 errors: No known data errors pool: unsafe state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM unsafe ONLINE 0 0 0 ad0p3 ONLINE 0 0 0 errors: No known data errors zpool iostat during the move shows : zpool iostat 5 capacity operations bandwidth pool used avail read write read write ---------- ----- ----- ----- ----- ----- ----- tank 2.65T 77.7G 6 8 9.65K 346K unsafe 28.4G 118G 14 10 1.77M 214K ---------- ----- ----- ----- ----- ----- ----- tank 2.65T 77.7G 88 0 131K 0 unsafe 28.4G 118G 76 11 9.28M 114K ---------- ----- ----- ----- ----- ----- ----- tank 2.65T 77.7G 102 46 147K 2.53M unsafe 28.4G 118G 79 6 9.81M 34.0K ---------- ----- ----- ----- ----- ----- ----- tank 2.65T 77.6G 2 42 4.30K 2.08M unsafe 28.4G 118G 81 3 10.1M 173K ---------- ----- ----- ----- ----- ----- ----- Why is there 10MB reads on source pool where only ~3MB are written on destination ? ZFS recordsize on both pools are default (128k). But as transmission bittorrent client has no write (nor read) cache, it could mean that data is written is smaller chunks during download. Could this lead to data being stored in many not-full records ? Does those unfull records would have to be read as whole (128k) during the move, which would explain the above difference on read/write ? I'm just making assumptions here, as my understanding of internals of ZFS is limited. Some insights would be appreciated. Thanks. Arnaud Houdelette