Cached
As most people probably can discern by reading the backlog of content entries here, I'm a fan of Memcache. It makes database driven applications crazy fast when used properly, and can be damn simple to integrate if your code is set up properly. I integrated it with the monitoring system I wrote at work a while back to take some of the load off MySQL, and it's worked exceptionally well.
While checking something else out in the monitoring system, I ran a report on the current Memcache status, and was kind of blown away. The system currently consists of 16 servers, 15 of which have memcached running on them, with 512MB allocated on each. That's 7.5GB of cache memory, for those that don't like doing math. I'll let the report speak for itself...
192.168.0.2:11211 uptime: 563.945474537 days read: 18097.7607219 GB written: 19537.6376228 GB
192.168.0.3:11211 uptime: 563.944502315 days read: 18373.8532251 GB written: 19785.8979402 GB
192.168.0.4:11211 uptime: 429.195578704 days read: 13156.7254652 GB written: 14532.1054876 GB
192.168.0.5:11211 uptime: 563.944247685 days read: 19168.9044306 GB written: 20775.6700451 GB
192.168.0.6:11211 uptime: 563.944212963 days read: 18374.297407 GB written: 19933.5923319 GB
192.168.0.7:11211 uptime: 563.944178241 days read: 17361.7501419 GB written: 18974.0357142 GB
192.168.0.8:11211 uptime: 563.942581019 days read: 17525.4281332 GB written: 18935.3812126 GB
192.168.0.9:11211 uptime: 317.73099537 days read: 11330.5213323 GB written: 12179.3746607 GB
192.168.0.10:11211 uptime: 0.774074074074 days read: 3.608856056 GB written: 5.957609009 GB
192.168.0.11:11211 uptime: 270.114976852 days read: 9460.02688244 GB written: 10477.9305441 GB
192.168.0.12:11211 uptime: 446.070590278 days read: 14058.0880373 GB written: 15349.2392257 GB
192.168.0.13:11211 uptime: 433.269293981 days read: 13117.9202484 GB written: 14265.9189342 GB
192.168.0.14:11211 uptime: 288.806412037 days read: 9547.86924515 GB written: 10396.3484227 GB
192.168.0.15:11211 uptime: 98.0899074074 days read: 3658.49374042 GB written: 4026.71671353 GB
192.168.0.16:11211 uptime: 18.6412731481 days read: 529.824877851 GB written: 591.686248784 GB
uptime (total): 5686.35829861 days bytes read (total): 183.765072745 TB bytes written (total): 199.767492713 TB
In just the current running processes, there is over 15 years of combined uptime, with 9 memcached processes up for over a year... 183 terabytes of data read from the memcached processes and 199 terabytes written. That's a lot of uptime and a lot of data! I've got a couple of crash-happy servers in the cluster too. Without those, the numbers would be higher.
For those wondering, the write number is higher than the read number because the latest snapshot data is stored into memcache for easy retrieval each time data is collected. The read numbers are part of the snapshot storage process as well, and would also be higher if there was more activity on the web interface.
More Speed!
In yet another pointless round of code updates to my site, I've made most of the site memcache-enabled. Memcache is a client/server system that allows for caching of data that you plan on accessing repeatedly, such as relatively static information from a database. For dynamic sites, this allows you to take a large amount of load off of your database server(s), and instead place that load on memcache, which is going to be faster and less CPU-intensive in just about every case. This makes for happier servers and faster site performance all around.
Why am I doing this? Mainly for the practice. I use memcache in some applications at work, and I'm constantly looking for ways to speed up those applications and make them more efficient. Plus, if I post something really cool and my site gets slashdotted, it will be able to weather the storm much better. I think.
There's still a few things I have to do yet, but if you look at the little stats area at the bottom of the site layout, you should see that most pages only show a few database queries, and many more memcache hits. There will always be a few database queries per page, but I'm shooting for five or less on each page.
Related Tags
|