Recommended JSS MySQL / Tomcat Performance Settings

cornwella
New Contributor III

Hello all!

All references I've found on this subject date back to 2011 or earlier, so I wanted to gather some feedback before applying any changes. We're running our JSS 9.96 instance on a Mid-2010 Mac Pro using OS X 10.11.5 with 24GB of DDR3-RAM; the server hosts nothing but the JSS itself, our JSS file repository and our Netboot images.

Currently we're allocating 1024MB / 4096MB of memory for Tomcat, 256MB of PermaGen size, a Max Packet Size of 16 for MySQL (which seems low) and a limit of 151 Database Connections. The server services about ~400 iMacs and 200 iPads. Is there a general rule of thumb as to what these settings should be at to ensure sufficient performance?

Thank you in advance!

5 REPLIES 5

SeanA
Contributor III

Not really, as there are different variables. I would recommend you read [https://www.jamf.com/jamf-nation/feature-requests/2494/tomcat-and-mysql-optimization-documentation-be-posted-to-the-knowledge-base](link URL) and, inside that link, Amanda Wulff's discussion about fine-tuning Tomcat and MySQL that was the source of that "Not Planned" Feature Request. Amanda provides some good "unofficial" rules of thumb.

cornwella
New Contributor III

Thank you! Amanda's breakdown for per-device scenarios is really helpful.

were_wulff
Valued Contributor II

@SeanA & @cornwella

That information is over two years old and does not apply to a JSS above version 9.8.

Scaling the way that was mentioned in the 2 year old comment will actually have adverse effects, sometimes to the point of crashing the JSS, on a JSS that is 9.8 or higher. If you have already made changes based on the old comment, I would recommend going back and reverting them to the originals and contacting your TAM if you are still seeing performance issues with your JSS.

I have edited the comment to remove the outdated information. If you need assistance with scaling or JSS performance, please contact your TAM, as what settings are 'correct' can vary greatly from environment to environment.

There is no longer a 'one size' style recommendation due to that.

Thanks!
Amanda Wulff
Jamf Support

peter
New Contributor III
New Contributor III
Max Packet Size of 16 for MySQL (which seems low)

16 or 16M? 16 would be limiting max packet size to 16 bytes; 16M would generally be good enough for most situations, but you can usually safely increase that significantly if you're seeing errors specifically related to max packet size.

were_wulff
Valued Contributor II

@peter

It's probably 16M; from what I've seen the default installations of MySQL are set to one of the following for the MaxPacket size: 2M, 4M, 16M.

I haven't yet figured out why it seems to differ, but I've set up VMs with no prior MySQL installation (and thus no existing my.cnf type file) where the MaxPacket size was different in all three default my.cnf files.

The only time I've seen it need to be raised larger is usually due to specific printer drivers and occasionally larger (larger than 2MB) in house app files; some tend to require either 128M or 256M (usually Xerox and HP for the latter), and if that's the case you'll see an error in the JAMFSoftwareServer.log about the MaxPacket size being too small when trying to save the object that requires the larger MaxPacket size.