From owner-freebsd-fs@freebsd.org Mon Sep 21 14:10:48 2015 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21853A06FA9 for ; Mon, 21 Sep 2015 14:10:48 +0000 (UTC) (envelope-from quartz@sneakertech.com) Received: from douhisi.pair.com (douhisi.pair.com [209.68.5.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 02610183E for ; Mon, 21 Sep 2015 14:10:47 +0000 (UTC) (envelope-from quartz@sneakertech.com) Received: from [10.2.2.1] (pool-173-48-121-235.bstnma.fios.verizon.net [173.48.121.235]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by douhisi.pair.com (Postfix) with ESMTPSA id C50DD3F7AB for ; Mon, 21 Sep 2015 10:10:46 -0400 (EDT) Message-ID: <56000FE6.3000306@sneakertech.com> Date: Mon, 21 Sep 2015 10:10:46 -0400 From: Quartz MIME-Version: 1.0 To: freebsd-fs@freebsd.org Subject: Re: ZFS cpu requirements, with/out compression and/or dedup References: <55FF111A.4040300@kateley.com> <55FF2115.8010209@sneakertech.com> In-Reply-To: <55FF2115.8010209@sneakertech.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Sep 2015 14:10:48 -0000 >> Any algorithm for TB's of storage and cpu/ram is usually wrong. > > dedup is kind of a special case though, because it has to keep the > entire DDT in non-paged ram (assuming you want the machine to be usable). > > Of course, the rule of thumb is for USED space. 40TB of blank space > won't need any ram obviously. Also, just for reference: according to the specs each entry in the dedup table costs about 320 bytes of memory per block of disk. This means that AT BEST (assuming ZFS decides to use full 128K blocks in your case) you'll need 2.5GB of ram per 1 TB of used space just for the DDT stuff (not counting ARC and everything else). Most systems are probably not going to be lucky enough to have 128K blocks though, so in real world terms you're looking at several GB of ram per TB of disk, and in worst case scenarios you might need a couple hundred GB... but at that point you should be offloading the DDT onto fast SSD L2ARC.