Subject: Re: sysctl & process limitations
To: Manuel Bouyer <bouyer@antioche.lip6.fr>
From: Randy Arabie <rrarabie@arabie.org>
List: netbsd-help
Date: 02/05/2002 08:53:08
On Tue, 5 Feb 2002, Manuel Bouyer wrote:

> On Tue, Feb 05, 2002 at 08:34:34AM -0700, Randy Arabie wrote:
> > You mention that, mysqld AND mysql.  You will note above that when I checked mysqld with fstat,
> > there were only 64 files open.  That, coincidentally, is the default proc.curproc.rlimit.descriptors.soft 
> > setting.
> > 
> > Does mysqld fork they mysql process, which may not be inheriting the limits set for mysqld?
> > 
> > Can I add a line in /etc/sysctl.conf to allow all processes to have a greater default soft limit for 
> > descriptors?
> 
> The sysctl stuff should be enouth. Did you check that the values have really
> been raised ?

Yes.  After I changed with the sysctl -w command I confirmed with sysctl -a proc.[pid].rlimit, they all
looked good.

> The 'safe_mysqld' script I use has an option to raise the limit:
> /usr/pkg/bin/safe_mysqld --open-files-limit=256

So, from my 'safe_mysqld' script, I could edit the following block:

<SNIP>
      # QQ The --open-files should be removed
      --open-files=*) open_files=`echo "$arg" | sed -e "s;--[^=]*=;;"` ;;
      --open-files-limit=*) open_files=`echo "$arg" | sed -e "s;--[^=]*=;;"` ;;
      --core-file-size=*) core_file_size=`echo "$arg" | sed -e "s;--[^=]*=;;"` ;;
      --timezone=*) TZ=`echo "$arg" | sed -e "s;--[^=]*=;;"` ; export TZ; ;;
      --mysqld=*)   MYSQLD=`echo "$arg" | sed -e "s;--[^=]*=;;"` ;;
      --mysqld-version=*)
        tmp=`echo "$arg" | sed -e "s;--[^=]*=;;"`
        if test -n "$tmp"
</SNIP>

Where I see '--open-files-limit=*' above, I could change the '*' to '256'?
 
> Anyway the error code doesn't match a per-process limit but a system limit.
> This is why I would use ktrace to check what the error really is.

My original trace last week confirmed that the error was error: 23.  I was tracing 
mysqld.

-- 

Cheers!

Randy