From owner-freebsd-arch@FreeBSD.ORG Mon Apr 13 08:32:03 2015 Return-Path: Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0A0717AF for ; Mon, 13 Apr 2015 08:32:03 +0000 (UTC) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (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 B6A7C5E9 for ; Mon, 13 Apr 2015 08:32:02 +0000 (UTC) Received: from slw by zxy.spb.ru with local (Exim 4.84 (FreeBSD)) (envelope-from ) id 1YhZmh-000ISz-NK; Mon, 13 Apr 2015 11:31:59 +0300 Date: Mon, 13 Apr 2015 11:31:59 +0300 From: Slawa Olhovchenkov To: Poul-Henning Kamp Subject: Re: default file descriptor limit ? Message-ID: <20150413083159.GN1394@zxy.spb.ru> References: <78759.1428912996@critter.freebsd.dk> <79209.1428913320@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <79209.1428913320@critter.freebsd.dk> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false Cc: arch@freebsd.org X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Apr 2015 08:32:03 -0000 On Mon, Apr 13, 2015 at 08:22:00AM +0000, Poul-Henning Kamp wrote: > -------- > In message <78759.1428912996@critter.freebsd.dk>, Poul-Henning Kamp writes: > > $ limits > > Resource limits (current): > > [...] > > openfiles 462357 > > > >say what ? > > > >This wastes tons of pointless close system calls in programs which > >use the suboptimal but best practice: > > > > for (i = 3; i < sysconf(_SC_OPEN_MAX); i++) > > close(i); > > > >For reference Linux seems to default to 1024, leaving it up to > >massive server processes to increase the limit for themselves. This is typical only on startup, I think? > >I'm all for autosizing things but this is just plain stupid... > > Just to give an idea how utterly silly this is: > > #include > #include > > int > main(int c, char **v) > { > int i, j; > > for (j = 0; j < 100; j++) > for (i = 3; i < sysconf(_SC_OPEN_MAX); i++) > close(i); > return (0); > } > > Linux: 0.001 seconds > FreeBSD: 17.020 seconds > > > PS: And don't tell me to fix all code in /usr/ports to use closefrom(2). % time ./a.out 0.581u 3.302s 0:03.88 100.0% 5+168k 0+0io 0pf+0w % time limits -n 100 ./a.out 0.000u 0.004s 0:00.00 0.0% 0+0k 0+0io 0pf+0w % limits [...] openfiles 116460 May be now time to introduce new login class, for desktop users, with reduced limits for open files and some regionals settings. And modify bsdinstall to support this. And may be some Gnome/KDE tools for creating users (I am don't use KDE/Gnome). Base login class ('default') don't touching, don't have limits and have locale "C", used for system startup and daemons.