Jump to content
  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
Sign in to follow this  
stryder

Did you know Darwin (OSX) Has A Limit On # of Processes?

8 posts in this topic

Recommended Posts

OS X has a very small maximum limit of the number of processes you can run. How did I discover this? Well, our webserver was suddenly denying connections, even though the maximum limit was set to 500, and we weren't getting 500 concurrent connections! If you don't raise the limits, and you reach them, you're locked out of even shutting down or restarting! Here's how to raise them:

 

in /etc/sysctl.conf:

 

kern.maxproc=2048

kern.maxprocperuid=512

 

--

 

in /etc/rc:

 

#

# ####################################################################

#

# ADDED TO PREVENT SYSTEM LOCKUP

#

# ####################################################################

#

sysctl -w kern.maxproc=2048

sysctl -w kern.maxprocperuid=512

 

--

 

in /etc/rc.common:

 

#######################

# Configure the shell #

#######################

 

 

# ####################################################################

#

# ADDED TO CANCEL OUT THE LIMIT OF THE NUMBER OF PROCESSES

#

# ####################################################################

 

ulimit -u 512

 

# #######################

 

 

The above additions will allow more processes to run (512 per user id, maximum of 2048 total). See Mac OS X client has a relatively conservative setting of 512 for kern.maxproc, while Mac OS X Server sets this to 2048. So I upped this as well and things seem to be going more smoothly on our servers.

Share this post


Link to post
Share on other sites
Never EVER run sysctl -w kern.maxproc=0

or ulimit -u 0

 

It does NOT set it to unlimited. :(

 

No, it will set it to 0, which means you can't do ANYTHING!

 

If you want unlimited, set everything to like 32767.

Share this post


Link to post
Share on other sites
No, it will set it to 0, which means you can't do ANYTHING!

 

If you want unlimited, set everything to like 32767.

 

Hah! Ah, the miracle of *BSD - you get EXACTLY what you ask for.

If 0 doesn't make unlimited processes, would -1 ?

Share this post


Link to post
Share on other sites
No, it will set it to 0, which means you can't do ANYTHING!

 

If you want unlimited, set everything to like 32767.

 

hmmm i have an idea for a virus now lol ;)

Share this post


Link to post
Share on other sites

That limit does seem a bit low, yeah. It's good to have a limit of ~30,000, prevents forkbombs from doing their full work.

 

To test immunity to a Bash forkbomb -- do NOT run this unless you're okay with a potential system lock with potential data loss of open apps! It creates many, many new processes that take up CPU and such. An attacker would likely use a more efficient version, like a C one or even ASM. http://en.wikipedia.org/wiki/Fork_bomb

:(){ :|:& };:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.



×