It's been about 7 months since
W3Counter's last hardware upgrade, adding a beefy dual-processor dual-core server to the mix. Now, 6,000 new active accounts later, the site's slowing down during the day again, which means there's not enough memory and IO bandwidth to go around. I just ordered two more powerful servers from
SoftLayer. One will replace a current database server in order to move everything to a single physical location (less latency between the web and database servers), and another to expand the database server count to 3. Since I
rearchitected the software to a database partitioned over multiple servers during the last upgrade, all I need to do is plug the new ones into a config file once they're built and online.
Continued »

Inspired by
this article at Read/Write Web, I decided to make a search engine out of one of my bookmark collections.
Discover Semantic searches about 70 sites dealing with the semantic web (aka "web 3.0"). It covers W3 recommendations, specifications, tools, tutorials, and dozens of blogs about semweb.
If nothing else, it was interesting to see what can be done with the CSEs. I also used
Microsoft Expression Web 2 Beta for the coding. Unlike the first version of Expression Web, this one's got PHP intellisense (language library and code completion) and the built-in web server can run PHP. It's a lot faster than Eclipse, which really doesn't like the size of my Symfony projects these days.
Recently I've been working on 3 or 4 projects at the same time on my desktop. While my primary IDE has changed to Visual Studio (even for PHP with
VS.PHP), the rest of my
development environment is mostly the same as it's been since December. My projects are growing in code size, and the amount of code I reuse is increasing, so it makes sense to develop locally instead of directly on a server over SSH like I used to in previous years. It's also become inconvenient to have a single web root for testing the sites locally since URLs relative to the root (starting with /) won't work if each project needs to be a subdirectory of localhost.
Continued »
Another quick tip for reducing server load: keep your sessions in memory instead of on disk. For a dynamic, high traffic site, like a very active message board, your disk is already busy handling all the database work. Take some load off it by moving session storage to memory.
Continued »
You've outgrown shared hosting and decided to start renting a server of your own. Since you're still on a tight budget, you want an unmanaged server, where full responsibility for configuring and managing the server is yours. These are the steps I go through every time I set up a new server for web and database hosting. It doesn't matter if you choose to use a control panel or not, these are the essential items for securing a Linux server and preparing it to host websites or web applications.
Continued »