Navigation

Search

Categories

On this page

Budget SSD RAID-0 on Windows 7
Intel Q6600 Thermal Power Dissipation (TDP)
How Windows Performance Counters of "Average" Types Linked to Their Bases
Vista ReadyBoost - Caching the Page File

Archive

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 69
This Year: 0
This Month: 0
This Week: 0
Comments: 28

Sign In
Pick a theme:

 Tuesday, August 18, 2009
Tuesday, August 18, 2009 10:52:47 AM (Eastern Standard Time, UTC-05:00) (  |  |  |  )

Update: here's a very good walk-through of setting up BIOS on Intel chipset motherboard for OCZ SSD RAID array.

Since I was about to clean up my system anyway, I decided not only to install Windows 7, but also bite the bullet and get two SSD drives and put them into striped RAID configuration. I did it last weekend and yes, rumors are true: the performance boost you get from SSDs, especially from RAID-0 SSDs is by far the most noticeable and exciting in a generation. (From this point on, spindle hard drives are entering their twilight years, and pretty soon they will be where CRT displays are now.) It's kind of perverse, but perf improvement is so drastic that it now takes less time for Windows to boot than for the motherboard to finish the POST!

Here are points that might be useful for those trying to do similar setup.

- Not every SSD drive can be used in RAID configuration. At this point you need to stick with SSD drives having Indilinx controller. 60GB MLC drives like OCZ Vertex, Corsair Extreme, and OCZ Agility (the one I got, see the review) - are all reasonably priced and will work well with mainstream motherboards-based RAID controllers, like Intel Matrix RAID. Two of these drives cost just a little over what single 128GB drive costs, but two 64GB drives give you two controllers, twice the amount of on the drive cache, and connection to two separate SATA channels, all of which delivers much better performance than a single 128GB drive for about the same amount of money.

- Windows 7 does have Intel Matrix RAID driver, so no need to do the F6 thing to load it during windows installation.

- If you are putting your drives into a desktop machine, you will need mounting brackets to fit 2.5" drives into 3.5" bays.

- Since both Windows 7 and SSD drives are relatively new products, load the latest BIOS for your motherboard before you even connect your drives for the first time. It's also a good idea to get a relatively recent motherboard and ensure your mobo does indeed have RAID functionality. For example, if your motherboard has Intel chipset, letter "R" in ICH10R "south bridge" chip name seems to indicate presence of RAID support.

- If your motherboard has Intel Matrix RAID, change BIOS settings to make sure you put your on-board SATA controller into RAID mode. It actually should be called AHCI+RAID, because RAID is still AHCI. Non-RAID SATA drives may still be used when SATA controller in RAID mode with no problem at all.

- Even though Windows 7 comes ready for SSD drives, tweaks like disabling SSD drive indexing will improve either drives' longevity or system performance. Also, Windows 7 may not see the RAID group as 100% SSD. What it means is that when Win7 realizes there is an SSD drive in the system, it's supposed to automatically turn off superfetch and disk defragmentation. In my case it did turn off disk defrag for my SSD RAID volume, but didn't turn off superfetch - maybe because I have a couple of regular hard drives also connected (although not members of the RAID array).

- If you wonder whether ATA Trim command (that helps to maintain SSD drives' performance) is going to work in RAID configuration, then the answer is not yet. Currently, the choices for SSDs connected to Intel matrix raid controller are either RAID, or TRIM, but not both together. The reason for that is Intel Matrix Storage Manager (MSM) driver does not pass through TRIM command - only MS SATA and IDE drivers for Windows 7 do. So for TRIM one needs to use Microsoft drivers, which do not support MSM RAID. So if you do RAID, you will need to use Intel MSM driver, and wait for some future version of MSM that can support TRIM in at least in RAID-0 and RAID-1 configurations.

- Next version of OCZ firmware for Agility and Vertex SSD drives is expected to have background "garbage collection" built in, which is supposed to reset NAND cells while drives are idling.

Here's a very good post about SSDs on Windows 7, plus an absolute must-read article about most popular SSD drives from AnandTech.com.

ATTO benchmarks:
Take a look a all-important 4KB transfer rates (most common case for non-server scenarios) - it does astonishing 178MB/s writes and 180MB/s reads:

Compare it with 53MB/s writes and 35MB/s reads of $440-worth, fastest 120GB MLC drive - OCZ Vertex Turbo:


...or with arguably the best SSD drive there is - $800 Intel X-25E SLC drive - it does 104MB/s writes and 120MB/s reads on 4KB block size:

 

Comments [0] | | # 
 Monday, December 01, 2008
Monday, December 01, 2008 10:31:40 AM (Eastern Standard Time, UTC-05:00) (  |  |  |  )

While comparing two Intel quad-core CPUs, Q6600 and Q8200, it was hard to arrive at the decision because for some inexplicable reason Intel does not state the TDP of Q6600. I reviewed several sources, and values are all over the map, from clearly incorrect 65W, to what looks like actual value of 105 Watt.

Since both CPUs cost $190 at this point, the decision which one to get comes down to whether you'd rather have a VT (virtualization technology), twice (8MB) the L2 cache and a little higher 2.4GHz clock of Q6600, vs. faster 1333 MHz FSB and 10W less of power consumption of Q8200.

Comments [0] | | # 
 Thursday, March 20, 2008
Thursday, March 20, 2008 5:04:21 PM (Eastern Standard Time, UTC-05:00) (  |  |  |  )

Some time ago I added performance counters to the application I was working on, and for some inexplicable reason all counters of "Average" type, like AverageCount64 or AverageTimer32, didn't work at all, always having 0 value. Then I had no time to find out why it was not working, but today I did. As you may know, "Average" counters are made of two distinct counters: the base counter and the average counter itself. The mystery was that by looking at all the samples returned by Google, it was unclear how the Base and the Average itself are linked together. It looked like you create the Base and the Average, add them to the collection and somehow magically Windows figures they need to be linked together when averages are calculated. After some research it looks like the two are linked by counter name! It appears that base's name should be the name of real counter, plus word " base". For example, when you define your counter category that has average performance counter, you do something like this:

   counters.Add(
new CounterCreationData("whatever", "whatever desc", PerformanceCounterType.AverageCount64));
   counters.Add(new CounterCreationData("whatever base", "whatever base desc", PerformanceCounterType.AverageBase));

To my surprise, changing the "whatever basevalue of the counter name in both CounterCreationData and PerformanceCounter to something like "whatever base1" breaks the perf counter! It looks like there is a naming convention requiring that AverageBase proformance counter has the CounterName property value on both CounterCreationData and PerformanceCounter to be counter name plus " base", but I never saw this mentioned anywhere - neither by MSDN, nor by Codeproject articles. So, since average perf counters always come in pairs, linked by name, these helpers should make creating average perf counters simpler (uinsg C#/.NET):

        private static void AddAverageCounterDefinition(CounterCreationDataCollection counters,

                        string counterName, string counterDescription, PerformanceCounterType averageType)

        {

            counters.Add(new CounterCreationData(counterName, counterDescription, averageType));

            counters.Add(new CounterCreationData(counterName + " base", string.Empty, PerformanceCounterType.AverageBase));

        }

 

        public class AveragePerfCounter

        {

            private PerformanceCounter averageCounter;

            private PerformanceCounter averageCounterBase;

 

            public AveragePerfCounter(string categoryName, string counterName)

            {

                this.averageCounter = new PerformanceCounter(categoryName, counterName, false);

                this.averageCounterBase = new PerformanceCounter(categoryName, counterName + " base", false);

            }

 

            public void IncrementBy(long val)

            {

                this.averageCounter.IncrementBy(val);

                this.averageCounterBase.Increment();

            }

        }

 

After this, when creating performance counter definition, you could use following code instead of the one shown by the very first snippet:
      AddAverageCounterDefinition(counters, "whatever", "whatever desc", PerformanceCounterType.AverageCount64);
It will add " base" to the name of the sidekick automatically.

And to create corresponding performance counter, you now can do this:
      AveragePerfCounter avgCount = new AveragePerfCounter("MyCategory", "whatever");
     
avgCount.IncrementBy(new Random().Next(100));

 

Comments [0] | | # 
 Thursday, December 28, 2006
Thursday, December 28, 2006 10:21:39 PM (Eastern Standard Time, UTC-05:00) (  |  )

I wanted to try new Vista's feature called ReadyBoost (how many marketing brainstorming sessions did it take to come up with the name?). It's essentially a copy of Vista's virtual memory page file on a flash drive, which is about 10 times faster than the hard drive when it comes to readying small non-sequential chunks of data.

My new Cingular 3125 Windows Smartphone rejected a 1GB MicroSD card made by Kingston, so I found nothing better to do with the flash as to make it a ReadyBoost drive. There are a couple of ways to turn a flash drive into a ReadyBoost storage:
   1. Bring up volume's properties dialog and go to the ReadyBoost property page;
   2. Select appropriate option from the auto-play dialog box after you inserted the drive into the usb port.
I read somewhere that card readers will not work as ReadyBoost drives, that only actual thumb drives will, but my experience is actually opposite: 256MB thumb drive from Dine-Elec was reported by Vista as too slow for ReadyBoost, but Kingston's MicroSD in the USB card reader passed the speed test and was made a ReadyBoost drive.

Well, I didn't notice any difference in performance after ReadyBoost was up. May be it's because my system has 1.5 Gig of memory and 7200 RPM drive, which means on those rare occasions when it needs to swap pages, it is fast. But notebooks will probably benefit much more: on laptops with limited memory and slow 5400 RPM hard drives fast flash card is much more likely to deliver some performance benefits.

Comments [0] | | #