Tuesday Dec 13, 2005

Welcome to the United States

I just returned from a trip to the US, which required a nonimmigrant visa.
For those of you who have never needed to apply for a US visa, here are some of the questions they ask you on the DS-156 nonimmigrant visa application form:

  • Have you ever unlawfully distributed or sold a controlled substance (drug), or been a prostitute or procurer for prostitutes?
  • Do you seek to enter the United States to engage in export control violations, subversive or terrorist activities, or any other unlawful purpose?
  • Are you a member or representative of a terrorist organization as currently designated by the U.S. Secretary of State?
  • Have you ever participated in persecutions directed by the Nazi government of Germany; or have you ever participated in genocide?
So, having convinced US Homeland Security that I am not a prostitute, terrorist or Nazi, they granted me a visa valid for 10 years.

Often the sanest refuge from bureaucratic idiocy is humour, and highly appropriate in this context is Welcome to the United States from Franks Zappa's Yellow Shark album.

The lyrics are based on the actual text of a US visa application form. Zappa was best known as a rock musician with fondness of satire and off-beat humor. But he was also a composer and the Yellow Shark album contains recordings of some of his more "serious" compositions performed by a German chamber orchestra with Zappa conducting. The album was released shortly after his death in 1993.

Anyway, back to the trip... I met up with Sun Ray engineers to discuss work we are doing on a new Sun Ray administration user interface. So, if you are a Sun customer and a Ray Server administrator, please let me know if there is anything you would like to see added to the admininstration UI, or any other comments on Sun Ray administration tools in general.

My visit coincided with the Desktop Performance Summit led by John Rice. I popped in on Wednesday when there was a talk on the performance analysis tools in Sun Studio. I also talked with Sean Meighan, who leads the development of Canary - a tool that gives an overall birds-eye view of the health of a group of machines on a network. I did some work on Canary a few months ago, and from what I have seen it is bound to be of great value to systems administrators in general, and Sun Ray server administrators in particular.

I felt a bit out of my depth with all the performance experts around, but it has motivated me to start playing around with DTrace and other tools available on Solaris. Up till now I have done most of my development on Linux, but with all these tools available on Solaris I'm going to make it my primary development platform from now on. My past experience in multiplatform development has proven that it is always beneficial to compile, test and run on as many OS's as possible, using as many different compilers as you can get your hands on. Subtle differences can expose bugs that may remain hidden if you stick to only one platform. So, with the Solaris tools now available, the desktop team should be able to identify and fix more performance bottlenecks in GNOME - work that will benefit both Sun and the GNOME community in the long run.

I would encourage free and open source software developers to consider using Solaris in addition to their favourite OS. With Open Solaris there are already a variety of different Solaris distributions available. One that I'm particularly interested in is Nexenta, which combines the Solaris kernel with Debian tools, which will result in an environment similar to my favourite Linux distro: Ubuntu.

A good working relationship between Open Solaris and Debian would be great. Some people have been keen on this for quite a while already, though there are some reservations about the CDDL. Hopefully these can be ironed out - my colleague Alo is certainly keen on getting a discussion going on this topic, and has proposed a talk at next year's Debian conference titled: OpenSolaris and Debian: Can we be friends?

Now, time to download the Nexenta LiveCD...

Wednesday Jun 08, 2005

GNOME versus CDE performance on SunRay

We received reports that GNOME was orders of magnitude slower than CDE on Sun Rays.

To verify and measure this, I designed and ran some performance tests in order to compare the time and bandwidth usage of GNOME (JDS) with that of CDE on Sun Rays. The tests measure the time it takes to display data using various desktop applications: Browser, StarOffice and Terminal.

I created a large (over 1MB) HTML file, containing a mix of headings, paragraphs, fixed text and images, and used it in 3 tests on a Sun Ray 100:

  1. Page through the file using the Browser
  2. Page through the file using Star Office
  3. Do a cat of the file in the Terminal
I ran the tests on 3 Sun Ray servers on our lab network:
  1. Linux
  2. Solaris Sparc
  3. Solaris x86
I monitored the network traffic from a Linux box on the same hub as the Sun Ray client, using the "tcpdump" utility. Instead of merely counting the number of packets in and out of the Sun Ray client, I counted the total number of bytes as well as the total length of time for each test. To achieve this, I wrote a small Python script to process the ASCII output of a tcpdump session and print a table displaying the time and total number of bytes transferred for each test.

To ensure repeatability and detect any variations I ran each test 3 times.

Before each test I logged in to a new session so that any memory leaks or other potential performance problems from an older login may be avoided.

I also ensured that the screen remains static before each test, eg: by having the GNOME clock applet not display seconds, and by having the terminal not use a flashing cursor. This way I could ensure that network traffic before and after each test consists of a constant (roughly every second) flow of small (40 byte) keep-alive packets.

To minimise variations in human interaction, I attempted to make the tests require as little human intervention as possible, and to make each test fairly long so as to make those variations negligible. Eg: The terminal test does a "cat" of a large file instead of requiring the user to perform a set of command-line operations. Some tests do require human intervention, Eg: the browser test requires the user to constantly press the PAGE-DOWN key to keep the page scrolling.

I ran the tests on CDE and JDS on the Solaris Sun Ray servers, and JDS on the Linux Sun Ray server (since Linux does not have CDE). Then I set the GNOME system fonts on JDS to Monochrome and repeated the tests. This speeded up the terminal and browser, however it doesn't speed up Star Office, which renders its own fonts. On Solaris, StarOffice is very fast so I didn't change fonts. However, on Linux I changed the Star Office fonts to use non-scalable fonts, ie. from "Thorndale" and "Albany" to "Fixed" under Tools->Options.

The following result table was generated by processing the dump files with a python script. To reduce the space of the table, I have only included results for Linux and Solaris x86 (Solaris sparc had similar results to Solaris x86). The green lines indicate the total time taken for each test, and the brown lines indicate the total number of bytes transferred between the Sun Ray client and server during that time.

The CDE results vary significantly from a very slow Browser to a very fast Terminal.

On JDS, both the Browser and Terminal are slow. But when set to use Monochrome fonts the performance of all three tests are pretty similar - on both Linux and Solaris.

So, the question for JDS is whether the monochrome results are acceptable in terms of performance, and then also whether they are acceptable in terms user experience: we can't have people using monochrome fonts that render faster but look bad. Our usability engineers should see if there are monochrome fonts that are of an acceptable quality to ensure that users are able to enjoy using JDS on a Sun Ray.




« April 2014