Many of my traditional blog post live on this site, but a great majority of my social-style posts can be found on my much-busier microbloging site at updates.passthejoe.net. It's busier because my BlogPoster "microblogging" script generates short, Twitter-style posts from the Linux or Windows (or anywhere you can run Ruby with too many Gems) command line, uploads them to the web server and send them out on my Twitter and Mastodon feeds.
I used to post to this blog via scripts and Unix/Linux utilities (curl and Unison) that helped me mirror the files locally and on the server. Since this site recently moved hosts, none of that is set up. I'm just using SFTP and SSH to write posts and manage the site.
Disqus comments are not live just yet because I'm not sure about what I'm going to do for the domain on this site. I'll probably restore the old domain at first just to have some continuity, but for now I like using the "free" domain from this site's new host, NearlyFreeSpeech.net.
Buried in this blog post is a great tip: Using the Apache web server utility ab
to determine web site availability and speed.
Definitely check out the post (which is about hosting static sites on Amazon S3), and if you are interested, install ab, which comes bundled for Debian/Ubuntu-style Linux systems in apache2-utils
and for Fedora/RHEL/CentOS-style systems in httpd-tools
.
The article linked above gives you the command to install apache2-utils
in Ubuntu/Debian, and I could provide a similar yum
command for Fedora/CentOS, but you probably already know how to install packages both from the command line and a GUI, right?
(I'm not sure how you'd get the Apache utilities
in Mac OS X or Windows -- maybe someone else knows.)
Once you have the appropriate package installed (I already had it and didn't even know it), you just run the ab
program from a terminal. This line hits my site with 1,000 requests:
$ ab -n 1000 -c 40 http://stevenrosenberg.net/blog
And the output is:
This is ApacheBench, Version 2.3 <: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking stevenrosenberg.net (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: nginx/1.6.2
Server Hostname: stevenrosenberg.net
Server Port: 80
Document Path: /blog
Document Length: 309 bytes
Concurrency Level: 40
Time taken for tests: 4.828 seconds
Complete requests: 1000
Failed requests: 0
Non-2xx responses: 1000
Total transferred: 530000 bytes
HTML transferred: 309000 bytes
Requests per second: 207.14 [#/sec] (mean)
Time per request: 193.109 [ms] (mean)
Time per request: 4.828 [ms] (mean, across all concurrent requests)
Transfer rate: 107.21 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 71 82 32.9 76 1077
Processing: 76 106 31.6 96 431
Waiting: 76 105 29.9 96 282
Total: 148 188 46.7 182 1157
Percentage of the requests served within a certain time (ms)
50% 182
66% 189
75% 199
80% 209
90% 232
95% 259
98% 283
99% 312
100% 1157 (longest request)
That's a pretty useful utility, am I right?
Note: So how did Ode do in this test? Very well. The site carries Javascript for Disqus and the Twitter and Google Plus counters, so it's not as light as it could be, and the speeds are no slower than for my entirely static sites on this same shared-hosting server.
And it also shows that Ode can easily handle 1,000 simultaneous requests. Not bad at all.