Summary: Two vBulletin web hosting forums running as virtual hosts in a VPS environment on high-performance hardware. Noted drastic change in CPU load most requests on vBSEO forum after installing vBSEO (performance on other forum has not changed).
- Virtualization: OpenVZ
- CPU: Sharing burstable CPU time on 2 quad-core Intel Xeon 1.60GHz processors
- RAM: 1024 MB (~260 MB used while idling)
- Disk: 40 GB (849 MB used)
- OS: CentOS 5.2
- Apache: 2.2.3
- PHP: 5.1.6
- Zend Engine: 2.1.0
- XCache: 1.2.2
Both virtual hosts are relatively low-traffic (<2000 visits/day) and neither had any performance issues prior to the installation of vBSEO.
- forums.spry.com - vBulletin 3.7.2 PL 1 - vBSEO not installed, performance
- forums.vpslink.com - vBulletin 3.7.2 PL 1 - vBSEO 3.2.0 installed
Full description of the issue:
Use of this plug-in has consistently caused Apache processes to consume inordinate CPU time (generally reaches 100% for the duration of requests served by vBSEO).
Depending upon the page which is requested, load times average between a minimum of 9 seconds (index) to 18 seconds (subforum index). Subforum pages which display many links demonstrate the worst performance.
I believe that this issue may be related to the lack of caching a threadid => CRU name lookup. I really would not care if it takes up a few MB of memory, have plenty to go around.
CPU time comes at a premium and 100% CPU load on a core for 10-20 seconds per page request is unacceptable for the user experience and system stability.
1) Installed vBSEO at forums.vpslink.com, enabled rewrite rules and added directives to httpd.conf
2) Noted performance issues immediately, no corroborating Apache or PHP errors
3) Installed and configured XCache (see configuration below)
Any suggestions appreciated - I would prefer not to escalate this issue to our systems administrators for further troubleshooting, as it appears to be isolated to the use of vBSEO on the forums.vpslink.com virtual host and is not evident on the forums.spry.com virtual host.Code:xcache.shm_scheme = "mmap" xcache.size = 64M xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0 xcache.var_size = 16M xcache.var_count = 4 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Off xcache.readonly_protection = Off xcache.mmap_path = "/tmp/xcache" xcache.coredump_directory = "" xcache.cacher = On xcache.stat = On xcache.optimizer = Off xcache.coverager = Off xcache.coveragedump_directory = ""