Basic system checks
A while ago, I have written an article about Linux settings for high load systems. This is a description for just very basic settings which are essential to successfully run XMPP service for hundred of thousands online users.
Of course, high load and high traffic systems require much more tuning and adjustments. If you use selinux you have to be careful as it can interfere with the service while it is under a high load. Also some firewall settings may case problems as the system may decide it is under a DOS attack and can start blocking incoming connections or throttle the traffic.
In any case, there are some basic checks to do every time you deploy XMPP service to make sure it will function properly. I am trying to keep the article mentioned above up to date and add all the settings and parameters I discover while working with different installations. If you have some suggestions for different values or different parameters to add, please let me know.
The article, while helpful, seems to be not enough though.
If you want to run a service on a few cluster nodes (5 or even 10), then manually checking every machine and adjusting these settings is quite annoying and it is very easy to forget about something.
To overcome this problem I started to work on a shell script which would run all the basic checks and report problems found. Ideally it should be also able to adjust some parameters for you.
I have just committed to the Tigase server trunk/scripts/ repository a script called machine-check.sh. It performs all the basic checks from the article and also tries to adjust them when necessary. Have a look at the code or check it out and run for yourself.
Any comments or suggestions, as usually, very much appreciated.