From owner-freebsd-jail@FreeBSD.ORG Tue Apr 21 22:03:54 2009 Return-Path: Delivered-To: freebsd-jail@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B543106564A for ; Tue, 21 Apr 2009 22:03:54 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) by mx1.freebsd.org (Postfix) with ESMTP id 185288FC16 for ; Tue, 21 Apr 2009 22:03:53 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from localhost (localhost.codelab.cz [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id 76F1D19E019; Wed, 22 Apr 2009 00:03:51 +0200 (CEST) Received: from [192.168.1.2] (r5bb235.net.upc.cz [86.49.61.235]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id 1D2A019E027; Wed, 22 Apr 2009 00:03:49 +0200 (CEST) Message-ID: <49EE42C5.3010409@quip.cz> Date: Wed, 22 Apr 2009 00:03:49 +0200 From: Miroslav Lachman <000.fbsd@quip.cz> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 X-Accept-Language: cz, cs, en, en-us MIME-Version: 1.0 To: =?UTF-8?B?0JzQtdC90YzRiNC40LrQvtCyINCa0L7QvdGB0YLQsNC90YLQuNC9?= References: <49EC926D.6020404@peterhost.ru> In-Reply-To: <49EC926D.6020404@peterhost.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Cc: freebsd-jail@freebsd.org Subject: Re: CPU limit for Jails(patch for ULE scheduler) X-BeenThere: freebsd-jail@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion about FreeBSD jail\(8\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Apr 2009 22:03:54 -0000 Меньшиков Константин wrote: > Hello all! > Many users want have limits on resourse for jail, for examle cpu and > memory limit. > I`m rewrire original cdjones patch for cpu limit for jail under ULE > scheduler. > So, this work simple. > We count cpu usage for all jails, and if jail use cpu more than have > shared cpu, we move his threads to IDLE queue and return to TIMESHARE in > reverse case. > Jailed thread can use all avaliable cpu time, if system has avaliable cpu. > If system under heavy load, jailed thread can`t use cpu long as ratio > (shared cpu for jail/ all shared cpu) < (estimate usage cpu for jail / > all usage cpu) . > Unjailed thread and interactive thread are not subject to this regime. > Add 2 sysctl > kern.sched.total_sched_shares - total count shares cpu in system, > increase if we have more cpu > kern.sched.flush_estcpu_interval - flush estcpu interval in ticks, > default is 2560 = 2 * 128 * 10, NCPU*stathz*sec, increase if we have > more cpu > For use cpu limit, you need use flag -S NSharedCPU in /usr/sbin/jail > program. > My example jail -S100 /usr/jails/root/ root.kostjn.pht 192.168.0.245 > /bin/csh > > I`m tested this under 10 simultaneous process in jail and in main > system. test program is infinity cycle an 8 core xeon, use RELENG_7. > First run process in jail, and after in main system. > This one process tracking cpu usage [...] > So we see, that after run in main system, jailed process can`t usage cpu. > > Please communicate me about all problem in this patch. > This is initial version, without tune jail parameter in runtime. > > So, this work. But i`m not sure, that is best way. > > Attempt increase priority for jailed thread not work, because non > interactive thread (that utilize many cpu) already have small > prioriry(numerical high). > Attempt decrease number ticks in cpu time slice, also not good idea, > because, this increase number context switching on high load. > May be you see other way for do this? > Share you idea. > > Thank. > Original cdjones cpu and memory limit patch > http://wiki.freebsd.org/JailResourceLimits Hello, I can't judge your work / patch as I am not developer nor C programmer. But it is nice to see that someone is working on the resource limits. I am waiting for this feature for a years without success. The original SoC project was never done (not production ready). There were attempts by others to update cdjones patch to newer versions of FreeBSD, but still with some minor problems. The last I remember is "Memory limits on 7.0" by Christopher Thunes (e-mail in archive of this list from 2008-06-24). Unfortunately I had not time to test his patch in times of 7.0 and I am not aware of any newer version of this patch (for 7.1 or upcoming 7.2). It would be nice if independent developers can work together on this subject and do this work production / commit ready. May be you should open PR with you patch, so anybody can find it, test it and help to make it better. Or if you have own web page with this patch + some documentation, I can put the link to http://wiki.freebsd.org/Jails Can you take a look to Memory limits patch and incorporate it in to your patch? Do you have a plan to add jtune? Thanks for your work, I hope I will have time to test it in few weeks. Miroslav Lachman