Stuart Henderson <s...@spacehopper.org> writes:

Hi Stuart,

>>>> Also ps(1) output seems to confirm that named process limit is the
>>>> entire memory of the machine.
>>>> 
>>>> root@openbsd: /var/named/tmp # ps -ax -v | head
>>>>   PID STAT       TIME  SL  RE PAGEIN   VSZ   RSS   LIM TSIZ %CPU %MEM 
>>>> COMMAND
>>>> 31077 S     277:43.57   0 127     15 608272 610340 8145988 1292 10.6  7.3 
>>>> /usr/sbin/named
>>>
>>> lim is "memory" not "datasize".
>>>
>>> Considering the amount of memory this process is actually using, it
>>> looks to me more like it's being run with a 512MB datasize limit,
>>> so perhaps it's not running under the expected 'daemon' class.
>>>
>>
>> Thanks Stuart, this seems reasonable. How can I find under what class
>> the named process is? Study the sources?
>
> I'm not sure if you can directly identify this after the fact,
> but this is determined by how it was started.
>
> If started by a user logged-in directly as root, it should be
> using the root user's class, by default 'daemon'.
>
> As per rc.d(8) if started by the normal system startup scripts,
> either at boot or manually afterwards, the class will be 'daemon'
> *unless* a class with the name of the daemon (in this case "named")
> exists in login.conf, in which case that will be used instead.
>
> If restarted at runtime *without* using the rc.d scripts, e.g.
> 'sudo pkill named; sudo named' then it would use the limits that
> applied to the user you were logged in as *at the time you logged
> in*. Note that if you change login.conf while you're logged in
> you will need a totally new login before the new limits
> apply. (In the case of ssh multiplexing, the old master process
> will need to go away too, not just your shell). Also note that
> people using login.conf.db will need to update it (I would not
> normally recommend login.conf.db though).

Thanks for the good explanations.
I always start bind either at system boot, or manually under the root
user using the rc.d script. Therefore the class should be "daemon"
according to your explanations and from what I see in
/etc/rc.d/rc.subr. 

However it seems that the process is running with 512MB datasize. Which
led me to this comment in /etc/login.conf:

# The default values
# To alter the default authentication types change the line:
#       :tc=auth-defaults:\
# to be read something like: (enables passwd, "myauth", and activ)
#       :auth=passwd,myauth,activ:\
# Any value changed in the daemon class should be reset in default
# class.
#

So the value in daemon is
daemon:\
        :ignorenologin:\
        :datasize=infinity:\
        :maxproc=infinity:\
        :openfiles-cur=128:\
        :stacksize-cur=8M:\
        :localcipher=blowfish,8:\
        :tc=default:

while

default:\
        :path=/usr/bin /bin /usr/sbin /sbin /usr/X11R6/bin
        /usr/local/bin:\
        :umask=022:\
        :datasize-max=512M:\
        :datasize-cur=512M:\
        :maxproc-max=256:\
        :maxproc-cur=128:\
        :openfiles-cur=128:\
        :stacksize-cur=4M:\
        :localcipher=blowfish,6:\
        :ypcipher=old:\
        :tc=auth-defaults:\
        :tc=auth-ftp-defaults:

could it be that datasize-max prevails from "default"?

I think I will add a "named" section in login.conf after I study its man
page ;-)
What do you think?

Regards,

Kostas

-- 
Kostas Zorbadelos               
twitter:@kzorbadelos            http://gr.linkedin.com/in/kzorba 
----------------------------------------------------------------------------
()  www.asciiribbon.org - against HTML e-mail & proprietary attachments
/\  

Reply via email to