|
A simple server benchmark script
Here's one of those examples where I found myself illustrating so many interesting features of PHP in one piece of code that I almost lost count!
<?php
# Web Site performance test page
if ($_REQUEST[pub] == "magpies") {
$wowser = `ab -n100 -c5 http://www.example.net/robots.txt`;
header("Content-type: text/plain");
print ($wowser);
exit();
}
?>
<html>
<body>
<h1>Under Construction</h1>
You wanted it WHEN?
</body>
</html>
1. The use of back quotes to run an operating system command.
2. The use of the ab program to benchmark another system / web2 techniques.
3. The ability to output different content types dependent on inputs.
 4. The use of a "sequence diagram" to show what's actually going on in a piece of code.
5. exit to leave a PHP script in the middle of the code.
6. A case of "security through obscurity" - the way that the script will only run the real application it contains if the user adds a certain parameter to the command line.
Downloadable copy of the source - [here].
On the main subject line of this being a simple benchmark script ... it's a VERY simple one; it just prods a server with lots of requests for the same page (100 requests, 5 concurrent) and should be run with care and the results should be taken with a large pinch of salt. If you're going to run something like this, run it on a different machine to the one you're testing, but one that has plenty of bandwidth, and do it at a quiet time of day initially.
If you're looking for a more realistic load test mechanism, try Jmeter. Although it's written in Java, it can test any server. See [here] for an article I wrote on that a while back.
(written 2010-04-27)
Associated topics are indexed under H300 - PHP Revision [4050] A couple of new fast-start PHP examples - (2013-03-21) [3953] Objects in PHP - Revision - (2012-12-16) [3952] PHP revision ... by example. - (2012-12-15) [1787] Howto - write and manage a news box on your web page - (2008-09-06) [1615] PHP training courses every month - (2008-04-18)
52e4
Some other Articles
Model - View - Controller demo, Sqlite - Python 3 - Qt4Connecting Python to sqlite and MySQL databasesPyQt (Python and Qt) and wxPython - GUI comparisonPublic Open Source Training Courses running this summer and autumn in MelkshamA simple server benchmark scriptWhat is a factory?Melksham Hustings at George Ward SchoolMelksham ScoutsWhat is all this SESSION stuff about? (PHP)Improving your function calls (APIs) - General and PHP
|
4086 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 at 50 posts per page
This is a page archived from The Horse's Mouth at
http://www.wellho.net/horse/ -
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).
|
|