Monday, October 26, 2009

Planned Obsolescence... A Tale of Premature Death

I'm not much of a conspiracy theorist. However there is one personal observation that I thought might be worth mentioning to see if there are others out there may find this a shared experience.

Over the past 6 or so years, I have observed that my mobile phones exhibit progressive signs of pre-mature death as the conclusion of the 2 year contract with the carrier reaches its expiration. This time around, the this observation has been more poignant than in previous years because my wife and I have the same phone model. We are now within a few months of the expiration of our 2 year contract. Interestingly both of our phones have started crashing for no apparent reason about two months ago.

Before I go on, consider the following history of this contract term. About a year into my contract, my phone encountered issues and I had it replaced under the warranty program. My new phone from all outward appearance is in very good condition. My wife's phone being a year older than mine bares a few more scars of normal wear and tear. But both were working without significant incident only months ago.

About two months ago, our phones would periodically crash and reboot showing the Palm logo and progress bar at the bottom. Of the 15-20 reboots of my phone, I haven't seen any particular correlation except that it occurs before or after having used the phone to make a call. The crash behavior of my wife's phone is similar. Thus far, my wife and I have only had two shared observations related to the state of the phones. First, we have noticed a periodic message on the phone indicating that a software update had been applied by the carrier during the evening. Second, the crash frequency has seemed to increase slightly over time.

Interestingly, the phones of my previous two contract life cycles have shared a common fate. The phones seemed to near death shortly before the expiration of their respective 2 year contracts.

If I didn't know any better, this observation almost seems to imply a "Planned obsolescence" of their mobile phones in concert with the contract duration. Surely no carrier would do such a thing. Or would they?

I suppose we, the lowly subscribers will never know the truth. Feel free to let me know if this is a shared observation from your own personal experience.

Brad

Wednesday, October 7, 2009

Solaris 10 10/09 ZFS cache improvements

Larry Wake in an interview by Chhandomay Mandal provides a good overview of the new features of Solaris 10 10/09 (a.k.a. Update 8).


With respect to my work in filesystem caching strategies, this new Solaris release introduces three excellent new features.

First is the introduction of L2ARC cache support. This means that you can now employ readzilla and writezilla SSD devices into any Sun servers.

Second is the introduction of ZFS ARC cache controls through the primarycache (e.g. L1 ARC cache) and secondarycache (e.g. L2 ARC cache) filesystem properties. These new cache controls provide the ability to define what is in and more importantly not in the ZFS ARC cache. You may recall from my blog post on filesystem caching strategies that controlling the contents of the ZFS ARC cache can produce much better and more consistent performance results for data centric services such as directory server and others.

For example, lets say that I am deploying directory server (e.g. DSEE) with the following layout:
* DSEE Bits: ZFS filesystem zpool/bits -primary and secondary caches are disabled
* DS info and txn logs: ZFS filesystem zpool/logs - primary and secondary caches are disabled
* DS DB and ChangeLog: ZFS filesystem zpool/data -primary and secondary caches are enabled

By using the primary and secondary cache controls, I guarantee for the zpool ZFS pool that the
only data stored in the ARC cache is the DS data and changelog.

Here is how to disable both primary and secondary cache for the zpool/logs filesystem at the time of filesystem creation:
# zfs create -o primarycache=none -o secondarycache=none zpool/logs

Here is how to disable both primary and secondary cache for the zpool/logs filesystem at after the filesystem has already been created.
# zfs set primarycache=none zpool/logs
# zfs set secondarycache=none zpool/logs

Note that if you wanted to create and associate pre-tuned ZFS filesystems to a zone at the same time you are creating the zone, you can do this through The Zone Manager with the -r or -w flags. This is possible with the latest release
through the extension that allows you to pass ZFS options like "primarycache=none;secondarycache=none;compression=gzip" to the -r or -w flags. Click here to see full usage help.

The third new feature is the breakout of ZFS ARC cache accounting in the ::memstat kernel metrics. Although the Solaris documentation doesn't make mention of this feature, I presume that it is present in support of the new ARC cache controls. You can see for yourself by running the following command:

# nice -10 echo "::memstat"|mdb -k

Note that you should not run this command on a production server as it may significantly reduce performance of the system while it scans through all physical memory. Note also that the time to complete running is proportional to the amount of physical memory installed in the server.

Here is a sample output of ::memstat metrics prior to Solaris 10 10/09:
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                      94731               370    9%
Anon                        35113               137    3%
Exec and libs                4544                17    0%
Page cache                 150191               586   14%
Free (cachelist)           394526              1541   38%
Free (freelist)            367163              1434   35%


Here is a sample of what I hope that you will see with Solaris 10 10/09:
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                     428086              3344    3%
ZFS File Data               25006               195    0%
Anon                     13992767            109318   85%
Exec and libs                 652                 5    0%
Page cache                  24979               195    0%
Free (cachelist)             1809                14    0%
Free (freelist)           1979424             15464   12%
Total                    16452723            128536
Have a super day!

Brad
PS: As soon as I get the chance to download and install Solaris 10 10/09, I will check the memstat data, I will confirm or deny the presence of the new memstat data.

Sunday, October 4, 2009

ZoneManager 2.0.6 Released

The long anticipated and way overdue update to The Zone Manager is now complete. Today, I officially released version 2.0.6 which can be downloaded here. The four primary areas of development that this version improved are as follows:
  • Incorporate full support for resource management.
  • Add support for OpenSolaris
  • Consolidate and unify filesystem management for all supported filesystems (e.g. LOFI/LOFS, UFS, ZFS/ZVOL/Dataset, PCFS, HSFS, NFS, and SMB/CIFS) into the -r and -w flags.
  • Added support for exclusive ip-type to dedicate a NIC to a zone.
Other areas of improvement include but are not limited to the following:
  • Unified the input syntax (e.g. primary delimiter is the pipe (|) symbol and the secondary delimiter is the semicolon (;).
  • Unified variable format.
  • Reduced number of commonly used flags by enabling some default values.
  • Fixed a lot of bugs.
If you find a bug, feel free to fix it and file the bug and fix or workaround here. If there are features that don't yet exist that you think would add business value, feel free to file an RFE here.

Enjoy!

Brad