Month: June 2005

Making PHP-to-MySQL Connections Persistent

I have been seeing these bursts of traffic, mainly from spambot morons, that have suddenly been crushing my server. The main cause: excessive database connections.

This was quickly remedied today when I changed all of the mysql_connect statements to mysql_pconnect statements. This allows PHP to use an existing connection to the MySQL database to serve requests from the same Apache child process.

Now the truly geeky among you are going “DOH! Wadda ya mean you were opening a new connection for every request?”. Well, believe it or not, I will bet you dollars to doughnuts that your blog app doesn’t persist database connections. Not a big deal if your database is on the same machine, and you are using local named pipes to make requests. However, if that database is located on another machine, if you do a netstat, you will see a large number of connection on port 3306.

Persisting database connections is particularly important for large hosted services. A great deal of TCP overhead, and kernel space memory can be saved by simply not letting the Web server saturate the database with individual database connections for every page request.

Without persistent database connections, eventually the TCP queue will be full of database connections and no one will be able to connect to the server, or they will get a lovely “can’t connect to database error”.

Web Performance Implications: Podcasters and iTunes 4.9

Geek News Central is reporting that their server is getting crushed with all the new iTunes 4.9 users. You had to know this would happen. People have heard the buzz and want to hear what it’s all about.
From a Web performance perspective, podcasts are hellish: large, uncompressible binary files. At least they are able to come along a single TCP connection. But at 10MB+ per file, iTunes is going to fill a lot of pipes, and max a number of bandwith caps.
Multicast streaming was supposed to alleviate this issue; podcasting is just going to make Web performance worse…or at least more noisy.
Now, how will the content distribution networks react? They are likely the only source that can help people relieve their load. The CORAL CDN Project is one source for open-source content distribution.
All in all, Web 2.0 is shaping up to be a bandwidth hog.


Technorati: , , ,

ZoneAlarm Borked…Again!

I hate running Windows.

I hate that the firewall app that I have run for years has suddenly decided to go and melt down into a giant puddle of goo, taking the CPU with it.

About two weeks ago, ZoneLabs released a broken update for their ZoneAlarm product.

Whoops! I did it again!

Yesterday, my Dell laptop slowed to a crawl, and began acting erratically. I thought it was me, and tried to re-boot. The re-boot hung, and I had to pull the battery out to go to shut down. Re-boot, and poof, it happens again.

Oh well, too hot to work anyway. Go to bed.

Get into the office this morning and the same thing begins to happen. Task Manager shows me that vsmon.exe is sucking 90%+ of my CPU. What the hell?

Turns out that this is the Vector Service that ZoneAlarm uses. Ahhh, corrupted ZoneAlarm. Uninstall, re-install, and poof! It happens again.

So I am sitting here, feeling VERY exposed right now. I am not enabling the Microsoft firewall, because it doesn’t play nice with IPSec apps, like my VPN app.
ZoneAlarm was rock solid. What happened?

And would anyone like to donate an iBook or Powerbook to your dear author?

Connectivity changes coming up shortly.

After 4.5 years of customer loyalty, I have decided that I have had enough of Comcast’s outrageous prices. I will be switching to Verizon DSL as soon as the install kit arrives.
Due to the way that my DNS is managed, you may encounter issues connecting to the server during the couple of days that it takes for the DNS to migrate and propagate.
Comcast has lost another customer. Does that surprise anyone?

Copyright © 2024 Performance Zen

Theme by Anders NorenUp ↑