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:34:34
On Tue, 5 Feb 2002, Manuel Bouyer wrote:

> On Tue, Feb 05, 2002 at 07:59:20AM -0700, Randy Arabie wrote:
> > On Mon, 4 Feb 2002, Randy Arabie wrote: 
> > 
> > > Right.  Like this:
> > > 
> > > mysql -u someuser -p -D somedatabase < ./data.sql
> > > 
> > > No.  I didn't raise the shell limits, I rose the kernel maxfiles and 
> > > the mysqld process proc.pid.rlimit.descriptors.soft limit.
> > > 
> > > I'll try the shell tonight.
> > 
> > Summary of Last Nights activities:
> > 
> > 	1) Switched back to the GENERIC kernel.
> > 	2) Edit /etc/sysctl.conf; added a line kern.maxfiles=5000
> > 	3) Reboot
> > 	4) Bump hard and soft proc.[mysqld_pid].rlimit.descriptors up to 2500.
> > 	5) Bump hard and soft proc.[shell_pid].rlimit.descriptors up to 2500.
> > 	6) Attempt to load the data, failure once again, same error message:
> > 
> > 	"ERROR 1017 at line 445: Can't find file: './geeklog/userinfo.frm' (errno: 23)"
> > 
> > 	7) fstat | wc -l shows 203 open files (done immediately following step 6 above.
> > 	8) fstat | grep mysqld | wc -l shows mysqld only has 64 open files.
> > 	9) The database only has 38 tables, and the datafile I'm trying to load is only
> > 		37 KB.
> > 
> > Someone suggested a few days ago that perhaps the error reported is not accurate.  How would 
> > I test that?
> > 
> > My 'gut' says this is probably an easily resolved configuration issue, but I'm stumped on 
> > where to go next.
> 
> Now I would try to ktrace both mysqld and the mysql loading the
> tables ... 

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?

Or could I recompile my kernel to change that?  I looked in kernel config and didn't see the options 
to change such things.

-- 

Cheers!

Randy