For the write caching experts

Page 1 of 3 123 LastLast

  1. whs
    Posts : 26,210
    Vista, Windows7, Mint Mate, Zorin, Windows 8
       #1

    For the write caching experts


    On another thread I had stated that there will be a performance hit if you turn off write caching for a SSD. But on second thought, I am not so sure any more.

    What write caching allows (in my understanding) is to accumulate records in a buffer so that so that they can be written to the disk in one big swoop. That is an advantage on a spinning disk because all those records are written during the same rotation - and there is also only one seek for the arm.

    I wonder though whether that brings the same advantage to the SSD where access time to any place is the same - and it is usually only 0.1ms. There would be an advantage if the records were written in larger blocks from the buffer because the SSD's write performance grows as the block size grows. But if records are still being written e.g. 4K at a time, there may not be an advantage.

    Does anybody know whether the blocksize for the write operations increases with caching?
      My Computer


  2. Posts : 258
    Win 7 Ultimate x64
       #2

    Hi whs - I see your point about the "write caching" and the SSD. Actually I think SSD's do write smaller blocks of data even faster than large sequential blocks so you could very well be right.

    It would be interesting to run a series of tests with the "write caching" turned both on and off- Checking the Windows Disk WEI and checking the results of some of the disk benchmarking utilities (like HD Tune and ATTO). :):):)

    At the moment I have my "write caching" turned on.
      My Computer


  3. Posts : 287
    Windows 7 Ultimate x64
       #3

    To my knowledge, SSDs do not have cache buffers.

    In Windows, write caching means that a disk write is addressed to the disk's cache buffer and not to a disk write.

    Write-caching does not occur in the PCs RAM.
      My Computer


  4. Posts : 258
    Win 7 Ultimate x64
       #4

    DeVandal said:
    To my knowledge, SSDs do not have cache buffers.

    In Windows, write caching means that a disk write is addressed to the disk's cache buffer and not to a disk write.

    Write-caching does not occur in the PCs RAM.
    Hi DeVanda - I think whs WAS referring to a buffer in the SSD, not in RAM :):):)
      My Computer


  5. Posts : 19,383
    Windows 10 Pro x64 ; Xubuntu x64
       #5

    Here are the results for a winsat -v on an OCZ Vertex2 60GB:

    Write-caching enabled
    Code:
     
    Microsoft Windows [Version 6.1.7600]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
    C:\Windows\system32>winsat -v disk
    Windows System Assessment Tool
    > Command Line 'winsat  -v disk'
    > DWM running... leaving it on
    > System processor power policy saved and set to 'max performance'
    > Running: Feature Enumeration ''
    > Gathering System Information
    > Operating System                        : 6.1 Build-7600
    > Processor                               : Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz
    > TSC Frequency                           : 0
    > Number of Processors                    : 1
    > Number of Cores                         : 4
    > Number of CPUs                          : 8
    > Number of Cores per Processor           : 4
    > Number of CPUs Per Core                 : 2
    > Cores have logical CPUs                 : YES
    > L1 Cache and line Size                  : 32768  64
    > L2 Cache and line Size                  : 262144  64
    > Total physical mem available to the OS  : 7.99 GB (8,580,902,912 bytes)
    > Adapter Description                     : NVIDIA GeForce GTS 250
    > Adapter Manufacturer                    : NVIDIA
    > Adapter Driver Version                  : 8.17.12.6099
    > Adapter Driver Date (yy/mm/dd)          : 2010\10\16
    > Has DX9 or better                       : Yes
    > Has Pixel shader 2.0 or better          : Yes
    > Has LDDM Driver                         : Yes
    > Dedicated (local) video memory          : 997.563MB
    > System memory dedicated as video memory : 0MB
    > System memory shared as video memory    : 3071.91MB
    > Primary Monitor Size                    : 1920 X 1080  (2073600 total pixels)
    > WinSAT is Official                       : Yes
    > Run Time 00:00:00.00
    > Running: Storage Assessment '-seq -read -n 0'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 256
    Sequential IO Size = 65536
    Random IO Size = 16384
    Run[1] Type[0x01080001] Zone[0] - 236.468359 MB/s
    Run[1] Type[0x01080001] Zone[1] - 186.774393 MB/s
    Run[1] Type[0x01080001] Zone[2] - 227.343106 MB/s
    Run[1] Type[0x01080001] Zone[3] - 266.466850 MB/s
    Run[1] Type[0x01080001] Zone[4] - 237.182919 MB/s
    Run[1] Type[0x01080001] Zone[5] - 269.477468 MB/s
    Run[1] Type[0x01080001] Zone[6] - 268.505970 MB/s
    Run[1] Type[0x01080001] Zone[7] - 267.059338 MB/s
    > Run Time 00:00:02.37
    > Running: Storage Assessment '-ran -read -n 0'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 1000
    Sequential IO Size = 65536
    Random IO Size = 16384
    Run[1] Type[0x01000002] Zone[0] - 225.589126 MB/s
    > Run Time 00:00:00.31
    > Running: Storage Assessment '-scen 2009 -drive C:'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 9000
    Sequential IO Size = 65536
    Random IO Size = 16384
            Requesting a file of size 1073741824 located at physical offset 0x6ffe80200.
    Expected number of IOs: 9000
    Number of IOs in trace file:9298
    > Run Time 00:00:51.71
    > Running: Storage Assessment '-seq -write -drive C:'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 8
    IO Count = 1000
    Sequential IO Size = 65536
    Random IO Size = 16384
            Requesting a file of size 65536000 located at physical offset 0x6500200.
    Run[1] Type[0x02000001] Zone[0] - 182.029038 MB/s
    Run[2] Type[0x02000001] Zone[0] - 152.466911 MB/s
    Run[3] Type[0x02000001] Zone[0] - 152.163698 MB/s
    Run[4] Type[0x02000001] Zone[0] - 168.728641 MB/s
    Run[5] Type[0x02000001] Zone[0] - 261.451744 MB/s
    Run[6] Type[0x02000001] Zone[0] - 262.118284 MB/s
    Run[7] Type[0x02000001] Zone[0] - 262.092538 MB/s
    Run[8] Type[0x02000001] Zone[0] - 230.172001 MB/s
    > Run Time 00:00:04.48
    > Running: Storage Assessment '-flush -drive C: -seq'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 2501
    Sequential IO Size = 65536
    Random IO Size = 16384
            Requesting a file of size 67108864 located at physical offset 0x6ffe80200.
    Expected number of IOs: 2501
    Number of IOs in trace file:2536
    > Run Time 00:00:00.84
    > Running: Storage Assessment '-flush -drive C: -ran'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 2501
    Sequential IO Size = 65536
    Random IO Size = 16384
            Requesting a file of size 67108864 located at physical offset 0x6ffe80200.
    Expected number of IOs: 2501
    Number of IOs in trace file:2528
    > Run Time 00:00:00.98
    > Running: Storage Assessment '-hybrid -ran -read -n 0 -ransize 4096'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 1000
    Sequential IO Size = 65536
    Random IO Size = 4096
    NV Cache not present.
    > Run Time 00:00:00.00
    > Running: Storage Assessment '-hybrid -ran -read -n 0 -ransize 16384'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 1000
    Sequential IO Size = 65536
    Random IO Size = 16384
    NV Cache not present.
    > Run Time 00:00:00.00
    > Disk  Sequential 64.0 Read                   246.55 MB/s          7.5
    > Disk  Random 16.0 Read                       227.76 MB/s          7.9
    > Responsiveness: Average IO Rate              0.68 ms/IO          7.9
    > Responsiveness: Grouped IOs                  8.06 units          7.5
    > Responsiveness: Long IOs                     1.51 units          7.9
    > Responsiveness: Overall                      12.20 units          7.9
    > Responsiveness: PenaltyFactor                0.0
    > Disk  Sequential 64.0 Write                  230.90 MB/s          7.4
    > Average Read Time with Sequential Writes     0.284 ms          7.9
    > Latency: 95th Percentile                     0.575 ms          7.9
    > Latency: Maximum                             1.978 ms          7.9
    > Average Read Time with Random Writes         0.298 ms          7.9
    > Total Run Time 00:01:01.34
    > The System processor power policy was restored
    C:\Windows\system32>
    and

    Write Caching Disabled
    Code:
     
    C:\Windows\system32>winsat -v disk
    Windows System Assessment Tool
    > Command Line 'winsat  -v disk'
    > DWM running... leaving it on
    > System processor power policy saved and set to 'max performance'
    > Running: Feature Enumeration ''
    > Gathering System Information
    > Operating System                        : 6.1 Build-7600
    > Processor                               : Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz
    > TSC Frequency                           : 0
    > Number of Processors                    : 1
    > Number of Cores                         : 4
    > Number of CPUs                          : 8
    > Number of Cores per Processor           : 4
    > Number of CPUs Per Core                 : 2
    > Cores have logical CPUs                 : YES
    > L1 Cache and line Size                  : 32768  64
    > L2 Cache and line Size                  : 262144  64
    > Total physical mem available to the OS  : 7.99 GB (8,580,902,912 bytes)
    > Adapter Description                     : NVIDIA GeForce GTS 250
    > Adapter Manufacturer                    : NVIDIA
    > Adapter Driver Version                  : 8.17.12.6099
    > Adapter Driver Date (yy/mm/dd)          : 2010\10\16
    > Has DX9 or better                       : Yes
    > Has Pixel shader 2.0 or better          : Yes
    > Has LDDM Driver                         : Yes
    > Dedicated (local) video memory          : 997.563MB
    > System memory dedicated as video memory : 0MB
    > System memory shared as video memory    : 3071.91MB
    > Primary Monitor Size                    : 1920 X 1080  (2073600 total pixels)
    > WinSAT is Official                       : Yes
    > Run Time 00:00:00.00
    > Running: Storage Assessment '-seq -read -n 0'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 256
    Sequential IO Size = 65536
    Random IO Size = 16384
    Run[1] Type[0x01080001] Zone[0] - 236.151589 MB/s
    Run[1] Type[0x01080001] Zone[1] - 186.819886 MB/s
    Run[1] Type[0x01080001] Zone[2] - 226.875917 MB/s
    Run[1] Type[0x01080001] Zone[3] - 264.418481 MB/s
    Run[1] Type[0x01080001] Zone[4] - 237.694862 MB/s
    Run[1] Type[0x01080001] Zone[5] - 269.530631 MB/s
    Run[1] Type[0x01080001] Zone[6] - 268.370815 MB/s
    Run[1] Type[0x01080001] Zone[7] - 266.927265 MB/s
    > Run Time 00:00:02.40
    > Running: Storage Assessment '-ran -read -n 0'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 1000
    Sequential IO Size = 65536
    Random IO Size = 16384
    Run[1] Type[0x01000002] Zone[0] - 225.472374 MB/s
    > Run Time 00:00:00.30
    > Running: Storage Assessment '-scen 2009 -drive C:'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 9000
    Sequential IO Size = 65536
    Random IO Size = 16384
            Requesting a file of size 1073741824 located at physical offset 0x6ffe80200.
    Expected number of IOs: 9000
    Number of IOs in trace file:9302
    > Run Time 00:00:51.85
    > Running: Storage Assessment '-seq -write -drive C:'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 8
    IO Count = 1000
    Sequential IO Size = 65536
    Random IO Size = 16384
            Requesting a file of size 65536000 located at physical offset 0x6500200.
    Run[1] Type[0x02000001] Zone[0] - 150.148530 MB/s
    Run[2] Type[0x02000001] Zone[0] - 152.072238 MB/s
    Run[3] Type[0x02000001] Zone[0] - 160.795368 MB/s
    Run[4] Type[0x02000001] Zone[0] - 258.688198 MB/s
    Run[5] Type[0x02000001] Zone[0] - 262.075243 MB/s
    Run[6] Type[0x02000001] Zone[0] - 231.898206 MB/s
    Run[7] Type[0x02000001] Zone[0] - 262.074037 MB/s
    Run[8] Type[0x02000001] Zone[0] - 262.088516 MB/s
    > Run Time 00:00:04.34
    > Running: Storage Assessment '-flush -drive C: -seq'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 2501
    Sequential IO Size = 65536
    Random IO Size = 16384
            Requesting a file of size 67108864 located at physical offset 0x6ffe80200.
    Expected number of IOs: 2501
    Number of IOs in trace file:2539
    > Run Time 00:00:00.84
    > Running: Storage Assessment '-flush -drive C: -ran'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 2501
    Sequential IO Size = 65536
    Random IO Size = 16384
            Requesting a file of size 67108864 located at physical offset 0x6ffe80200.
    Expected number of IOs: 2501
    Number of IOs in trace file:2526
    > Run Time 00:00:00.98
    > Running: Storage Assessment '-hybrid -ran -read -n 0 -ransize 4096'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 1000
    Sequential IO Size = 65536
    Random IO Size = 4096
    NV Cache not present.
    > Run Time 00:00:00.00
    > Running: Storage Assessment '-hybrid -ran -read -n 0 -ransize 16384'
    Mode Flags = 0x%08x
    Disk Number = 0
    Iterations = 1
    IO Count = 1000
    Sequential IO Size = 65536
    Random IO Size = 16384
    NV Cache not present.
    > Run Time 00:00:00.00
    > Disk  Sequential 64.0 Read                   246.41 MB/s          7.5
    > Disk  Random 16.0 Read                       227.78 MB/s          7.9
    > Responsiveness: Average IO Rate              0.68 ms/IO          7.9
    > Responsiveness: Grouped IOs                  8.08 units          7.5
    > Responsiveness: Long IOs                     1.52 units          7.9
    > Responsiveness: Overall                      12.24 units          7.9
    > Responsiveness: PenaltyFactor                0.0
    > Disk  Sequential 64.0 Write                  239.70 MB/s          7.5
    > Average Read Time with Sequential Writes     0.294 ms          7.9
    > Latency: 95th Percentile                     0.969 ms          7.9
    > Latency: Maximum                             31.188 ms          7.9
    > Average Read Time with Random Writes         0.389 ms          7.9
    > Total Run Time 00:01:01.39
    > The System processor power policy was restored
    C:\Windows\system32>
    Is that sufficient to make a judgement on whether caching is better on or off from a performance point of view?
      My Computer


  6. whs
    Posts : 26,210
    Vista, Windows7, Mint Mate, Zorin, Windows 8
    Thread Starter
       #6

    thehappyman said:
    DeVandal said:
    To my knowledge, SSDs do not have cache buffers.

    In Windows, write caching means that a disk write is addressed to the disk's cache buffer and not to a disk write.

    Write-caching does not occur in the PCs RAM.
    Hi DeVanda - I think whs WAS referring to a buffer in the SSD, not in RAM :):):)
    You are right. Somewhere I read that the Intel X25M (?) has a buffer and I was wondering about the others.

    Is that sufficient to make a judgement on whether caching is better on or off from a performance point of view?
    Thanks Golden for making the test. Looks more or less the same to me.
      My Computer


  7. Posts : 19,383
    Windows 10 Pro x64 ; Xubuntu x64
       #7

    There seems to be a higher maximum latency with caching disabled, but I'm not sure sure what that really means.

    Enabled : Latency: Maximum 1.978 ms 7.9
    Disabled : Latency: Maximum 31.188 ms 7.9
      My Computer


  8. whs
    Posts : 26,210
    Vista, Windows7, Mint Mate, Zorin, Windows 8
    Thread Starter
       #8

    Golden said:
    There seems to be a higher maximum latency with caching disabled, but I'm not sure sure what that really means.

    Enabled : Latency: Maximum 1.978 ms 7.9
    Disabled : Latency: Maximum 31.188 ms 7.9
    Yeah, right - I did not catch that one. That is worth exploring some more. It would suggest that the access time increases dramatically in the disabled case.
      My Computer


  9. whs
    Posts : 26,210
    Vista, Windows7, Mint Mate, Zorin, Windows 8
    Thread Starter
       #9

    I ran HD Tune on my old Intel Gen1 (which is a leftover from Vista days but still going strong) both with and without write caching. At least HD Tune did not find any difference in access time. Now I am really puzzled and wonder what the implications of this big latency difference are.
    Attached Thumbnails Attached Thumbnails For the write caching experts-2011-01-21_1119.png   For the write caching experts-2011-01-21_1236.png  
      My Computer


  10. Posts : 258
    Win 7 Ultimate x64
       #10

    It's not just the Latency, look at the "Read Time with Random Writes" too

    .298 msec with caching enabled (better)
    .389 msec with caching disabled

    But then the "Sequential Write"

    230.9 mb/sec with caching enabled
    239.7 mb/sec with caching disabled (better)


    I did some checking and many of the OCZ drives have 64 or 128 MB cache buffers.

    But looking at the overall data it looks like there is little to gain with any write caching. And Winsat gave both modes a 7.9 rating

    So, Go Figure

    But in the above Winsat tests was the Write Cache Buffer Flushing turned "On" or "Off"
    And should it have been "On" when the Caching was enabled ????
    And "Off" when it was disabled ????
      My Computer


 
Page 1 of 3 123 LastLast

  Related Discussions
Our Sites
Site Links
About Us
Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 04:12.
Find Us