Upgrading stand-alone MON box for LCG 2.4.0 on RH 7.3 The aim of the exercise was to upgrade a "stand-alone MON box" (i.e. a set of servlets NOT associated with a particular Grid resource) from running an LCG 2.2.0 compatible R-GMA to an LCG 2.4.0 R-GMA. There are two main options: 1) Follow "client" and "server" install instructions at http://hepunx.rl.ac.uk/egee/jra1-uk/LCG/doc/index.html 2) Use YAIM to create a standard LCG MON box associated with a not-quite-existent site, a bit like the UI. As we're supposed to be doing performance testing with reference to the LCG testbed, I've gone for the second option to get the same configuration details, even though it's the less attractive route. First, follow instructions from (1) to remove old R-GMA and tomcat (as we know from site MON box the latter has problems with upgrades). Then get guide from http://grid-deployment.web.cern.ch/grid-deployment/documentation/LCG2-Manual-Install/ I used guide v2.4.0-1 Have OS with NTP working. Upgrade Java and j2sdk_profile (as repository has zero-length file) Check /etc/java.conf, /etc/java/java.conf are OK Get and install apt and YAIM, and fill out the site-info.def. Create a null users.conf with "touch users.conf" (any content such as a newline will fail the format check)(If none is specified, config_edgusers will hang waiting for std input.) Need mysql root password. Install packages: /opt/lcg/yaim/scripts/install_node site-info.def lcg-MON In /usr/lib, fix symbolic links for liblog4cxx.so* Try a "/usr/bin/env python" If still on Python 1.5.2, then try a "/usr/bin/env python2" to ensure it is actually installed, then modify the first lines of /opt/edg/bin/rgma-server-check and at least of following in /opt/edg/share/rgma/scripts/ : rgma-server-setup.py rgma-setup.py rgma-setup-db.py to #!/usr/bin/env python2 For servicetool, need to change to StatusScript=python2 /opt/edg/share/rgma/scripts/rgma-servlet-status.py ArchiverService in /opt/edg/etc/rgma-servicetool/services/RGMA.* Add "return 0" as line 2 of /opt/lcg/yaim/functions/config_apel_rgma (no site so don't need any accounting) Configure packages: /opt/lcg/yaim/scripts/configure_node site-info.def MON Now have something like a proper MON box! python2 /opt/edg/bin/rgma-client-check rgma-client-check rgma-server-check Now stop for a nice cup of tea. Except servicetool is still publishing short names; /opt/edg/etc/rgma-servicetool/services/RGMA.ArchiverService etc. have Endpoint=http://gabor:8080/R-GMA/ArchiverServlet /opt/edg/share/rgma/scripts/rgma-server-setup.py has: # Get hostname hostname = socket.gethostname(); Fixed by making line 143-ish of rgma-server-setup.py hostname = socket.getfqdn(); Oh, and still have to chkconfig tomcat4 on. Unfortunately edg-rgma-servicetool tries to start BEFORE tomcat/R-GMA... must remove lock file and start by hand after reboot. NOW stop for a nice cup of tea. R-GMA performance tweaks: I've made the following changes to match those on the site box: In /etc/tomcat4/tomcat4.conf add ulimit -n 16384 # Java VM options for memory control JAVA_OPTS="-Xmx1024M" By default is set to 256M, as in /opt/lcg/yaim/functions/config_rgma_server sed s/JAVA_OPTS="-Xmx\d+M"/JAVA_OPTS="-Xmx$(( $MemSize / 2 ))M"/ /etc/tomcat4/tomcat4.conf.org doesn't match the JAVA_OPTS="-Xmx256M" in the template. (Possible problem: the JAVA_OPTS line will break rgma_config, so must be commented out whenever the configuration is repeated, either directly or by .../yaim/scripts/configure_MON.) I've not tested this yet, but note YAIM now reruns config at every reboot... but not on 7.3. In /opt/edg/share/webapps/R-GMA/WEB-INF/web.xml change maxTupleMemory for all servlets to -1. (restart Tomcat)(-1 = unlimited; I've also seen 358 used) This time YAIM set them all to 358. I'm not sure how much this helps; each servlet seems now to be limited to ~1/3 the JVM max. (Edit /etc/tomcat4/server.xml and set maxProcessors="1000" for the 'Connector port="8080"'.) This is already done by YAIM.