Saturday, November 01, 2008

Splashtop: Solving slow boot problems

Recently someone sent me a link to splashtop, in context of some work I was doing on Asus Eeepc. Splashtop is a OEM installed OS that boots off a embedded flash/hidden-partition device on your PC. It uses Bootsplash, SquashFS, Blackbox, SCIM and Linux kernel.

Splashtop's raison d'etre is to provide instant-on/off experience to PC. Since PC boot times are slow, most people don't even turn off their machines. Splashtop takes about a second to show it's splashscreen right after BIOS on a Asus notebook. From this screen, you can launch virtual appliance'cified Firefox or Skype or boot Windows etc. One thing to note is that each of these operations in turn may take 5 to 25 seconds.

I wonder if this is a feasible approach to solve this problem. Boot process which involves hardware initialization, OS initializtion, startup application initialization - all of these operations have to take "some" amount time. And we know that most of these are IO bound due to slow disk and RAM access. So unless, something dramatic happens this isn't going to become faster anytime soon.

Splashtop is splitting the boot stage into two parts - and let you interact at the end of the first stage. In doing so, it is actually taking more time to get to the full OS stage. (which is needed inevitably to run your favorite app).

Funnily, this slow boot issue is already not an issue for me because I don't shutdown my laptop at all. I simply close the lid and it suspends in a second or two. Then when I open the lid, it simply resumes in a second. Since I use the laptop daily, having it suspended to ram for over 10 hours is not a problem.

So, I think the near-term solution to slow boot problems is in suspend-to-ram path. There are other projects out there like coreboot etc which replace OEM bios with super fast Linux bios to speed up POST process. Efforts like that can also help speed up cold boot.
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Sunday, July 06, 2008

Firefox 3 download World record official: 8,002,530

Finally, the Guinness World Record results are out. Here's what is said on Download Day page.
Thanks to the support of the always amazing Mozilla community, we now hold a Guinness World Record for the most software downloaded in 24 hours. From 18:16 UTC on June 17, 2008 to 18:16 UTC on June 18, 2008, 8,002,530 people downloaded Firefox 3 and are now enjoying a safer, smarter and better Web.


I even got a certificate for participating in the event!


These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

LinkedIn has expired SSL certificate!


Today www.linkedin.com HTTPS certificate expired. Seems they have forgotten to renew it. Quite shameful for a company that promises privacy and security of user’s information.
Here’s what Firefox 3 told me when I visited the website and tried to sign-in.

Logging in bypassing this cert security error is not an option for me. So, for all practical purposes, linkedin is down for me.
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Sunday, June 15, 2008

Tue June 17th Firefox 3 Releases!

The release date for Firefox 3 has been announced. It is also the "Download Day" when Mozilla community will attempt to set a world record for most software downloads in 24 hours. You can pledge for the same here.

Firefox 3 has some very good new features that makes it a compelling upgrade. Here's a field guide to FF3. Enjoy!

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Friday, May 02, 2008

Speed: Firefox Vs Safari

This test was done with Webkit's SunSpider JavaScript Benchmark on the latest versions of Firefox 3 and Safari available as of today.

It overall the test results indicate Safari is faster. But the individual results need to be looked at and decided which tests really matter in real world and how they affect our daily browsing speed.




TEST COMPARISON FROM TO DETAILS

=============================================================================

** TOTAL **: 1.07x as fast 3216.0ms +/- 1.8% 3003.4ms +/- 1.1% significant

=============================================================================

3d: - 393.0ms +/- 5.0% 377.8ms +/- 1.3%
cube: ?? 131.4ms +/- 14.2% 140.0ms +/- 2.1% not conclusive: might be *1.07x as slow*
morph: 1.19x as fast 136.8ms +/- 1.5% 115.4ms +/- 2.5% significant
raytrace: 1.02x as fast 124.8ms +/- 1.3% 122.4ms +/- 2.3% significant

access: 1.19x as fast 501.0ms +/- 0.9% 422.6ms +/- 2.9% significant
binary-trees: 1.44x as fast 71.0ms +/- 2.1% 49.2ms +/- 2.1% significant
fannkuch: 1.40x as fast 230.0ms +/- 1.8% 163.8ms +/- 1.5% significant
nbody: *1.07x as slow* 140.4ms +/- 1.6% 150.8ms +/- 6.8% significant
nsieve: - 59.6ms +/- 3.2% 58.8ms +/- 1.8%

bitops: 1.56x as fast 443.8ms +/- 1.4% 284.6ms +/- 1.3% significant
3bit-bits-in-byte: 1.48x as fast 70.0ms +/- 2.8% 47.2ms +/- 2.9% significant
bits-in-byte: 1.36x as fast 97.4ms +/- 2.8% 71.4ms +/- 1.6% significant
bitwise-and: 2.19x as fast 169.0ms +/- 2.0% 77.2ms +/- 4.2% significant
nsieve-bits: 1.21x as fast 107.4ms +/- 2.3% 88.8ms +/- 1.2% significant

controlflow: 2.47x as fast 88.6ms +/- 1.3% 35.8ms +/- 6.7% significant
recursive: 2.47x as fast 88.6ms +/- 1.3% 35.8ms +/- 6.7% significant

crypto: 1.26x as fast 231.8ms +/- 1.4% 183.6ms +/- 1.8% significant
aes: 1.07x as fast 77.8ms +/- 1.8% 72.6ms +/- 0.9% significant
md5: 1.42x as fast 77.0ms +/- 2.6% 54.4ms +/- 5.0% significant
sha1: 1.36x as fast 77.0ms +/- 3.0% 56.6ms +/- 2.0% significant

date: *1.28x as slow* 279.8ms +/- 4.8% 357.0ms +/- 0.9% significant
format-tofte: *1.62x as slow* 133.0ms +/- 9.5% 215.6ms +/- 1.0% significant
format-xparb: 1.04x as fast 146.8ms +/- 2.4% 141.4ms +/- 2.5% significant

math: 1.29x as fast 426.8ms +/- 1.4% 330.6ms +/- 3.8% significant
cordic: 1.22x as fast 166.2ms +/- 0.8% 136.0ms +/- 2.5% significant
partial-sums: 1.32x as fast 179.4ms +/- 2.1% 136.0ms +/- 8.3% significant
spectral-norm: 1.39x as fast 81.2ms +/- 2.9% 58.6ms +/- 2.8% significant

regexp: *1.27x as slow* 204.2ms +/- 0.8% 258.4ms +/- 0.9% significant
dna: *1.27x as slow* 204.2ms +/- 0.8% 258.4ms +/- 0.9% significant

string: *1.16x as slow* 647.0ms +/- 3.9% 753.0ms +/- 2.7% significant
base64: 1.10x as fast 94.6ms +/- 1.2% 86.2ms +/- 2.4% significant
fasta: *1.21x as slow* 171.0ms +/- 1.1% 206.4ms +/- 10.5% significant
tagcloud: *1.20x as slow* 131.0ms +/- 1.5% 157.0ms +/- 0.6% significant
unpack-code: *1.54x as slow* 128.4ms +/- 1.1% 198.0ms +/- 1.3% significant
validate-input: - 122.0ms +/- 20.2% 105.4ms +/- 3.0%
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Thursday, May 01, 2008

Windows Live Writer On Macbook

Windows Live writer is such a good blogging software that it alone justifies installing vmware fusion+windows on my Macbook. Apple really doesn't have any product that comes anywhere close to Windows Live Writer for blogging. For that matter nobody has.

Among all products under Live brand this alone is generations ahead.

Keep Rocking!

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Monday, April 28, 2008

Switching to OSX

I've got a macbook at work. And for the last couple of days while trying to figure out how to do various simple tasks I have been thoroughly annoyed by this critically acclaimed OS.

http://shiflett.org/blog/2006/feb/top-x-list-of-mac-os-x-annoyances

This blog summarizes my annoyances very well. Is Apple listening to it's customers? If it wants to get more corporate customers or grow it's market share, they better do something about these things.
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Sunday, March 23, 2008

dstat - Analyzing Linux System Performance

Knowing the effect of your application on the system and observing system performance while your application is going thru different scenarios can give you great insight about the bottlenecks and performance ceilings in your application. Today, lets look at some of the tools on Linux that will help us understand the system performance.

dstat is a tool that shows various system performance parameters in real time.

Install dstat on your Fedora system with "yum install -y dstat" or on your Debian based system with "apt-get install dstat"

 

Here's a screenshot of it working. Click on it to see the full image.

dstat in action

Here, you can see various useful information that can tell you if system performance is throttled due to one or more of the resources being maxed out or if there is scope to improve performance by balancing the usage of the under-utilized resources.

For example, on this specific system, you can see its resources are hardly utilized. It has capacity to handle to many times it's current load. Currently, there is barely some disk activity (maybe logging) and some network activity. Interrupts and context-switches are within decent range. Most of the memory is used by kernel for caching and hardly any swap usage.

Interesting column to watch is the first 3 columns under procs. It tells us the status of the current scheduler queue. We can see new processes are being spawned. If the system is suffering from too many processes being spawned and competing for CPU, these columns can indicate that. If we see too many processes in wait state and we see high disk or network I/O, it should indicate that the system is I/O bound. Also, memory column gives us the correct split of the memory actually in use v/s the memory used by kernel for caching and buffers.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Saturday, March 22, 2008

htop: more than top. pstree: ps with tree.

I'm a big fan of procexp and other sysinternals tools on Windows. Many people who use those and then come to Linux complain that there are no such tools in Linux. Most people are familiar with top and ps commands. I would like to introduce you to a bunch of utilities on Linux that are very useful while debugging issues. Lets start with htop, a better alternative to top.

You can install htop on a yum based system like Fedora, Redhat, CentOS etc with "yum -y install htop" or with "apt-get install htop" on systems that are debian apt based like Ubuntu.

htop is much better in displaying the process and resource information than top. It gives a more accurate and clearer picture of process memory usage than top.

A screenshot of htop in action:

image

It has many interesting features. It's display layout is refreshing different and nice. It can show tree view, a very important feature to understand the ancestry of a process. In the size column, the MB part is highlighted with a different color. The command name in the command line is highlighted. Other user names can be shadowed. You can do multiple process selection and apply nice values or kill them. With the setup menu, you can add or remove the columns, change the color scheme etc. Lots of useful features.

Knowing process hierarchy is very useful in understanding the system. I prefer to use pstree to ps for this reason.

For example:

[ root@zen ~]# pstree -nulap
init,1
  |-udevd,539 -d
  |-dhclient,1597 -1 -q -lf /var/lib/dhclient/dhclient-eth0.leases -pf /var/run/dhclient-eth0.pid eth0
  |-rsyslogd,1677 -m 0
  |   `-{rsyslogd},25683
  |-rklogd,1681 -x
  |-named,1696,named -u named
  |   |-{named},1697
  |   |-{named},1698
  |   `-{named},1699
  |-ntpd,1747,ntp -u ntp:ntp -p /var/run/ntpd.pid -g
  |-dovecot,1755
  |   |-dovecot-auth,1758
  |   |-pop3-login,24204,dovecot
  |   |-imap-login,24334,dovecot
  |   |-pop3-login,24414,dovecot
  |   |-imap-login,24447,dovecot
  |   |-imap-login,24466,dovecot
  |   `-imap,24468,vinay
  |-master,1817
  |   |-qmgr,1841,postfix -l -t fifo -u
  |   |-tlsmgr,1923,postfix -l -t unix -u
  |   `-pickup,24418,postfix -l -t fifo -u -o content_filter dksign:[127.0.0.1]:10027
  |-crond,1825
  |   `-crond,24450
  |       `-freshclam-sleep,24453 /usr/share/clamav/freshclam-sleep
  |           `-sleep,24455 2829
  |-atd,1832
  |-amavisd,2245,amavis
  |   |-amavisd,2247
  |   `-amavisd,2248
  |-httpd,12379
  |   |-httpd,25708,apache
  |   |-httpd,25709,apache
  |   |-httpd,25710,apache
  |   |-httpd,25711,apache
  |   |-httpd,25712,apache
  |   |-httpd,25713,apache
  |   |-httpd,25714,apache
  |   `-httpd,25715,apache
  |-mysqld_safe,12423 /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log--pid-file=/var/run/mysqld/mysqld.pid
  |   `-mysqld,12483,mysql --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking--socket=/var/lib/mysql
  |       |-{mysqld},12484
  |       |-{mysqld},12485
  |       |-{mysqld},12486
  |       |-{mysqld},12487
  |       |-{mysqld},12489
  |       |-{mysqld},12490
  |       |-{mysqld},12491
  |       |-{mysqld},12492
  |       `-{mysqld},12493
  `-memcached,12526,memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid
      |-{memcached},12527
      |-{memcached},12528
      `-{memcached},12529

As you can see from the above tree, it is much more clearer as to which process is spawned by which process and helps us to understand the relationships better. Many times, there can be issues due to orphaned child process which are preventing the clean restart of a service. This can be easily identified with pstree.

More tools in next entry.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Friday, February 08, 2008

More power to OpenID

http://openid.net/2008/02/07/evolving-the-openid-foundation-board/

20 million to over 250 million adoptions in a span of 12 to 18 months for a concept that was born in a small community just 2 years ago without the muscle power of any large corporation is just amazing.

More power to OpenID and all open standards - those are the only ones worth calling standards.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati