Sun’s T2000 “Coolthreads” Server: First Impressions and Experiences
by Johan De Gelas on March 24, 2006 12:05 AM EST- Posted in
- IT Computing
PHP/MySQL: T2000 as a heavy SAMP web server
In this first part of our T2000 review, we look at the T2000 as a heavy Apache, MySQL and PHP web server (or SAMP web server). You do not buy a T2000 to offer some basic web services or to serve up some static HTML.
There are two ways that the T2000 could be useful as a web server. The first one is to use Solaris zoning (a.k.a. "Solaris containers") techniques to run a lot of light/medium web servers in parallel virtual zones. As virtualisation is still something that requires quite a bit of expertise, and we didn't have much experience with Solaris Zones, we decided to test the second scenario.
As a side note, the T1 has a built-in support for a hardware called Hypervisor (which is a first for Sparc), which might make virtualisation quite a bit faster. It also makes OS support easier (once your OS can support running inside the Hypervisor, there'd be little porting left to do), except for new features. Basically, the Hypervisor virtualises the chipset, giving a consistent view to the OS. Sun is helping to make sure that Linux and BSD gets ported to the T1.
Back to our web server testing. The second scenario is a heavy web server, which gets a lot of traffic on dynamically generated content that requires quite a bit of number crunching.
We have two real world examples: one using JSP and Sybase, and the other one using PHP/MySQL. In this article, we like to introduce you to the first example.
The PHP test script retrieves hourly-stored weather information out of a MySQL database, which can be overviewed by month. An 'opening page' displays all months that are stored in the database, and if you open a 'detail page', the month you have selected is submitted by query string parameters.
On that new opened page, you see the following information for that month:
For benchmarking, httperf was used in conjunction with autobench, a Perl script written by Julian T. J. Midgley, designed to run httperf against a server several times, with the number of requests per second increasing at each iteration. The output from the program enables us to see exactly how well the system being tested performs as the workload is gradually increased until it becomes saturated. In each case, the server was benchmarked with 5 requests per connection.
In this first part of our T2000 review, we look at the T2000 as a heavy Apache, MySQL and PHP web server (or SAMP web server). You do not buy a T2000 to offer some basic web services or to serve up some static HTML.
There are two ways that the T2000 could be useful as a web server. The first one is to use Solaris zoning (a.k.a. "Solaris containers") techniques to run a lot of light/medium web servers in parallel virtual zones. As virtualisation is still something that requires quite a bit of expertise, and we didn't have much experience with Solaris Zones, we decided to test the second scenario.
As a side note, the T1 has a built-in support for a hardware called Hypervisor (which is a first for Sparc), which might make virtualisation quite a bit faster. It also makes OS support easier (once your OS can support running inside the Hypervisor, there'd be little porting left to do), except for new features. Basically, the Hypervisor virtualises the chipset, giving a consistent view to the OS. Sun is helping to make sure that Linux and BSD gets ported to the T1.
Back to our web server testing. The second scenario is a heavy web server, which gets a lot of traffic on dynamically generated content that requires quite a bit of number crunching.
We have two real world examples: one using JSP and Sybase, and the other one using PHP/MySQL. In this article, we like to introduce you to the first example.
The PHP test script retrieves hourly-stored weather information out of a MySQL database, which can be overviewed by month. An 'opening page' displays all months that are stored in the database, and if you open a 'detail page', the month you have selected is submitted by query string parameters.
On that new opened page, you see the following information for that month:
- Overall Minimum, Maximum & Average Temperature for that month
- Minimum, Maximum & Average Temperature by day and by night, for that month
- Average temperatures for each day in that month
- Minimum, Maximum & Average wind speed
- percentages for the wind direction (for example: for 20% of the time, the wind direction was WEST, 10% SOUTHWEST, etc.)
- the script execution time
"When the page is requested, first thing the script does is checking if all $_GET variables, such as 'm' and 'j' are set. If somebody requests the page without these $_GET variables, the script will not continue because it has insufficient parameters to continue.He included a nice diagram for us to make the process clearer.
Next thing that happens is the 'cache-file check'. I haven't used any type of PEAR class, or other frameworks that support caching, to enable caching in the weather-script. I simply check if the cache file exists (the cache file contains the regular HTML output that the browser of the client normally would receive), and if it's not older than one minute. If so, the file will be included, and the php 'exit' command will be executed so that the script thinks that it has 'ended' and the output will be sent to the browser.
If the cachefile does not exist, or if it's older than one minute, the script will simply continue, but the ob_start() function, to start 'output-buffering', will be executed. All regular scripts and several MySQL queries will be executed, and at the end of the file, a new file will be created with fopen($file,'w') (the 'w' makes sure that if the file already exists, it just will be blank and it will seem as if you're writing to a 'new' file. If the file does not exist already, it will be created). When the script ends, the output buffer contents will be retrieved with ob_get_contents(), and all this output will be written to the new cache-file with fwrite(). At the end, ob_end_flush() will flush the output buffer contents to the browser of the client..."
For benchmarking, httperf was used in conjunction with autobench, a Perl script written by Julian T. J. Midgley, designed to run httperf against a server several times, with the number of requests per second increasing at each iteration. The output from the program enables us to see exactly how well the system being tested performs as the workload is gradually increased until it becomes saturated. In each case, the server was benchmarked with 5 requests per connection.
26 Comments
View All Comments
JackPack - Friday, March 24, 2006 - link
Pleasant to read as usual, Johan.BTW, are they letting you keep the T2000?
http://blogs.sun.com/roller/page/jonathan?entry=ni...">http://blogs.sun.com/roller/page/jonathan?entry=ni...
PandaBear - Friday, March 24, 2006 - link
In terms of Branded server it is a good price, but as benchmark have shown, a Dual Opteron running Linux both perform better and use less power. I think people who buy these class of server want support and service (and build quality) and in that case Sun certain would win the whitebox builder no matter how good a Dual Opteron is.Nonetheless it is a good product, for the one who demand this kind of quality. Now Intel's solution really looks bad.
Calin - Friday, March 24, 2006 - link
I don't know what you are talking about - if you would up the memory on the Opteron HE (2CPU of 2 cores) to 32GB, the power consumption would be almost the same (assuming 6W per 4GB of RAM, it would be at 234W. Close enough to be considered equal, I'd say.Also, wouldn't populating all the possible memory slots on the Opteron decrease a bit its performance? I don't know about Opteron, but Athlon64 decrease its command rate (Help, Johan! :) ) when working with all the memory channels filled.
I agree about the better performance of the Opteron server, but regarding the power use, it is the same as the Sun's recent offering. Maybe the introduction of the DDR2 Opterons would change the power envelope, but until then, the T1 might have some aces up its sleeve
JohanAnandtech - Friday, March 24, 2006 - link
You must calculate about 4-5 Watt per 2 GB Dimm. Based on the measurements I did and slightly guessing I think a 32 GB Opteron HE with 32 GB would definitely consume more than The T2000 as also have to count a few Watts per memory channel.Indeed, fully loaded DIMM channels will probably throttle back to lower speeds. I am not sure about Command rate though (BTW, it increases on the Athlon 64 not decreases :-), as it is possible less important with buffered DIMMs.
About performance, we still have to test a lot of scenario's (jsp, databases). The impression of the T2000 might still change.
Zoomer - Sunday, April 9, 2006 - link
2xx Opterons use rigistered ram, so its not an issue like with the 1xx 939s.Calin - Friday, March 24, 2006 - link
I just took the difference measured between the 2xOpteron HE with 4 and 8 GB or RAM (192 and 198W), shown in the table on the last page. I know that even rounding errors might change that between 4 and 8W, but anyway, Opterons won't use less power than the T1.Very interesting article, and I eagerly await for the sequels :D