Home Blog Page 1981

How to Monitor, Benchmark, Use a Calendar, and Play Games in the Linux Terminal

The Linux terminal is a friendly, colorful place full of fast, lightweight and useful applications like dstat, Calcurse, Petris, and Siege.

One of my favorite Linux features is seamless switching between full-blown Xorg graphical desktop environments and the terminal. Sometimes I want to pointy-clicky, sometimes I want to type stuff. There are two types of terminal applications: plain text commands, for example topps, and ls, which are three popular commands, and ncurses-based applications. Ncurses is a slick graphical environment for the terminal with windows and menus. If you’ve ever used the text installer to install a Linux distribution, or used alsamixeror Midnight Commander file manager (mc), then you have used ncurses.

dstat System Monitor

dstat is yet another good application by the industrious Dag Wieers, who has given us the excellent and popular Dag RPM Repository for Fedora, CentOS and Red Hat, and a gaggle of nifty utilities you can read about here.

dstat is a “versatile resource statistics tool.” It replaces a host of individual utilities such as vmstatiostatnetstat and ifstat. All displayed statistics are realtime and in the same timeframe, so you can see your desired stats side by side. It even supports CSV exports so you can make pretty graphs in Gnumeric or LibreOffice Calc. If you run dstat with no options (figure 1) it displays the options -cdngy by default, which are:

  • cpu
  • read-write disk stats
  • network send and receive
  • page stats in and out
  • system interrupts and context switches

dstat

Ctrl+c stops it. Of course you may select whatever options you desire. You can monitor selected network interfaces:

$ dstat -nN eth0
--net/eth0-
 recv  send
 118B   66B
   0     0 
  60B   42B

Memory usage:

$ dstat -m
------memory-usage-----
 used  buff  cach  free
2371M  373M  902M  308M

Enable time and date output:

$ dstat -t
----system----
     time     
10-04 17:36:23
10-04 17:36:24
10-04 17:36:25

The fun part is stringing together your desired options in a single display, like this:

$ dstat -t --top-cpu --top-io  --top-latency 
----system---- -most-expensive- ----most-expensive---- --highest-total--
     time     |  cpu process   |     i/o process      | latency process 
10-04 17:44:08|X            2.5|xscreensave 192B 1491k|kworker/1:0  1297
10-04 17:44:09|plugin-contai2.0|plugin-cont8293B  101B|kworker/0:1  8271
10-04 17:44:10|plugin-contai1.7|xfce4-panel   0    53k|kworker/0:1  8008
10-04 17:44:11|plugin-contai2.3|firefox      28B   19k|plugin-contai 488
10-04 17:44:12|plugin-contai2.0|plugin-cont8294B  102B|kworker/0:1  8146
10-04 17:44:13|plugin-contai2.3|plugin-cont8297B  105B|kworker/0:1  8340

This shows, to no one’s surprise, that Web browsers and browser plugins are system resource hogs.

There is even an example plugin for learning how to write your own dstat plugins:

$ dstat --helloworld
plugin-title
  counter   
Hello world!
Hello world!

Consult man dstat for a complete options list.

Calcurse Calendar, To-do, and Scheduling

Calcurse is a nice ncurses-based calendar, to-do, and scheduling application. It opens with three panels: calendar, appointment list, and todo list. Hit the tab key to navigate between the three panels, and watch the border color to see which panel you’re in.

calcurse

It has contextual help, so make sure you’re in the pane you want to be in, type ? for help, and then look at the very bottom pane to see what commands are available. This can take a little getting used to if you’re not familiar with ncurses applications, but it goes fast once you get the hang of it. For example, tab to the Appointments pane, press k to navigate up items in the pane, and j to go down. A selected item will be a different color. Type ? to open the help menu. Then in the bottom pane it says “a Add Item”, so type the letter a to learn how to add an appointment. Type q to quit the help menu.

Note the “o OtherCmd” option. This displays more commands, such as layout and color configuration, and additional navigation commands such as skip ahead or back a week, skip to today, and create/edit/delete a note. Notes are attached to appointments and to-dos, so first select the item you want to attach a note to, and then press n. Create your note, and an angle brace appears to indicate than an item has a note attached.

petrisThere is more nice functionality explained in the contextual help, such as iCalendar import and export, and notifications. Also read the fine man calcurse page for additional options.

Petris

Yes, a game! All work and no play makes us dull, and console games don’t require high-end graphics and won’t crash your computer with buggy drivers. Petris is a simple Tetris clone with limited functionality: it doesn’t have a speed drop, and it only supports tracking high scores for a single player. It operates the same way as Tetris: pick your starting level, use the arrow keys to position the pieces as they fall, and then play until your fingers fall off.

Figure 3: Petris

Siege HTTP Load Tester

Siege is a nice and easy-to-use load tester for pummeling and benchmarking your Web applications and sites. Don’t use it on other people’s sites, unless you enjoy having angry Webmasters hunting you.

To start out, run siege.config to generate a configuration file in your home directory, ~/.siegerc. By default it logs to /var/siege.log, so if you run siege as an ordinary user it won’t be able to write to the default log file. I edit ~/.siegerc so that it logs to my homedir:

logfile = ${HOME}/.siege.log

This example is a simple benchmark test that sends 15 simulated concurrent users to pummel your site for 60 seconds:

$ siege -b -t60S  http://example.com
** SIEGE 2.70
** Preparing 15 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200   0.38 secs:    6009 bytes ==> /
HTTP/1.1 200   0.42 secs:    6009 bytes ==> /
HTTP/1.1 200   0.42 secs:    6009 bytes ==> /
[...]
Lifting the server siege...      done.
Transactions:                   2131 hits
Availability:                 100.00 %
Elapsed time:                  59.18 secs
Data transferred:              12.21 MB
Response time:                  0.42 secs
Transaction rate:              36.01 trans/sec
Throughput:                     0.21 MB/sec
Concurrency:                   14.96
Successful transactions:        2131
Failed transactions:               0
Longest transaction:            0.78
Shortest transaction:           0.30

That is a good run: the server was always available, throughput was good, and transactions were quick. You can craft a more realistic test by creating a file of URLs of various pages on your site, one URL per line, and then try an incantation like this:

$ siege -c25 -d10 -i -f filename.txt

-c sets the number of simulated concurrent users, and -d sets the “sleep” interval for each user between requests. -d is a random interval up to the value you choose, so for a value of 10 the sleep intervals will range randomly from 0-10. -f specifies your URL file, and -i tells Siege to randomize the URLs. Which is all a pretty slick method for simulating real-world use.

You can learn interesting things about sites by pulling their headers:

$ siege -g http://example.com
GET / HTTP/1.1
Host: example.com
Accept: */*
Accept-Encoding: gzip
User-Agent: JoeDog/1.00 [en] (X11; I; Siege 2.70)
Connection: close
HTTP/1.1 200 OK
Date: Thu, 11 Apr 2013 03:46:22 GMT
Server: Apache
X-Powered-By: PHP/5.3.22
X-Drupal-Cache: HIT
Etag: "1365647258-1"
Content-Language: en
X-Generator: Drupal 7 (http://drupal.org)
Cache-Control: public, max-age=21600
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Vary: Cookie,Accept-Encoding
Content-Encoding: gzip
Last-Modified: Thu, 11 Apr 2013 02:27:38 GMT
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8

And you can test what happens when you send different user agents. The user agent is configured in ~/.siegerc. Just do a quick Web search to find various user agents to try, such as different Web browsers, and testing the various user agents for Web crawlers and search engine bots can be interesting. Read the fine man siege to learn more, and ~/.siegerc contains a lot of useful information.

GCC 4.7.3 Released With 118+ Bug-Fixes

For those using the proven and tested GCC 4.7 compiler series rather than the brand new GCC 4.8, there is now GCC 4.7.3 with over one hundred bug-fixes over the previous release…

Read more at Phoronix

Cinnarch drops Cinnamon for GNOME

The developers of the Cinnarch Linux distribution have decided to move away from the Cinnamon desktop which makes up one half of the distribution’s name. The developers now plan to switch to GNOME as a new default.

Read more at The H

Samsung Goes Mega With Two New Galaxy Smartphones

One option features a 5.8-inch screen, while the other comes in at 6.3 inches. [Read more]

 

Read more at CNET News

Distribution Release: Webconverger 19.1

Kai Hendry has announced the release of Webconverger 19.1, a single-purpose Debian-based distribution designed for Internet-only web kiosks and featuring the Firefox web browser: “Webconverger 19.1 release. Webconverger 19 brings you in terms of effort put in: printing support completely overhauled with a new printer API; restored NVIDIA…

Read more at DistroWatch

LLVM Compiler Infrastructure Receives ACM Software System Award

The compiler infrastructure has received the prestigious ACM Software System Award, following in the footsteps of other IT innovations such as Java, Apache, Mosaic, the World Wide Web, Smalltalk, UNIX and Eclipse

Read more at The H

International FOSS Law Review 5.1 Available

The seventh issue (Volume 5, No. 1)of the International Free and Open Source Software Law Review is now available. The article topics include an analysis and study of case law regarding APIs and the *GPL licenses, the rise of open source software foundations, and a study of the Lisp LGPL license.

Read more at LWN

Benchmarks Of NVIDIA’s New Linux GPU Driver

For seeing whether NVIDIA’s new 319.12 Beta Linux graphics driver that introduces many new features has any impact on the OpenGL performance for many common Linux games, here are some Phoronix test results when comparing the NVIDIA 304.xx, 310.xx, 313.xx, and 319.xx graphics driver series on GeForce GTX 550 Ti “Fermi” and GeForce GTX 680 “Kepler” graphics cards…

Read more at Phoronix

Tablets Conspire with ‘Good Enough’ PCs to Nuke Windows 8

So, will that be a $399 tablet or $799 Windows 8 PC? The answer to that question is killing the PC upgrade cycle. [Read more]

 

Read more at CNET News

Linux 3.10 May Have New Multi-Platform Support

The Linux 3.7 kernel brought ARM multi-platform support and now with the Linux 3.10 kernel it may be extended to support the Samsung Exynos SoC family…

Read more at Phoronix