Closed Thread
Results 1 to 7 of 7

Thread: Making XP pro SSD friendly

  1. #1
    SSD TIGER Tony's Avatar
    Join Date
    May 2003
    Posts
    10,019
    Blog Entries
    6
    Mobo: various as always testing
    BIOS: various as they never work correctly
    CPU: usually AM3, but sometimes AM2+ and i7
    RAM: I test so much its hard to say
    Vid: 3870x2's...this is the one fixed variable
    PSU: PCPC 1200W/860W
    HDD: Vertex or Vertex EX
    OS: All M$ from XP forward

    Default Making XP pro SSD friendly

    Before we get going, this thread will be read only, if you want to discuss tweaking XP etc please post here: http://www.ocztechnologyforum.com/fo...812#post300812


    Also there is no benchmark that will show improvements, the ONLY way to tell is by using the drive and noting if issues have gone away. Any bench you run will just bench how windows access and uses the drive...so nothing will look to have changed.



    Background to tweaking XP to make it SSD friendly:


    Cheaper SSD drives like our Core V1 and Core V2 series have limitations with random writes filling up the write buffer on the drive and causing the SATA controller to pause while this is flushed. The reason for this is Nand MLC drives at present have to erase before they write...hence you get added latency. So every bit written to the drive has to be preceded by a bit erased, the drive can not write over the top of pre written data.

    What we are trying to do here is limit how much XP writes to cache/database. many apps within XP do this , apps you add also do this (such as outlook)
    The tweaks you will see listed may help with this, SSD's do not take well to lots of tiny random writes.


    Paying homage to helpful forum members:


    geosoft for getting the ball rolling
    D111 for being level headed and bringing sanity to a bad Monday morning for me

    As you contribute I will add info and homage in this thread, together we can work thru the limits and hopefully get to where many will enjoy the drives.
    If you can add help, post in the thread listed above and PM me the link to the post...please make sure to test all tweaks and only post what works

    To start

    Nlite...http://www.nliteos.com/

    With this tool you can add service packs, remove items from XP and tweak services etc. We will not be producing a guide but this tool will help you massively if you learn how to use it.

    I would suggest to start you install the correct drivers for the chipset on the motherboard into the OS image using Nlite. Instructions for this are on the Nlite site and on many forums.

    If we find tweaks that are easy with Nlite I will add them here.


    Next up what to do within the OS its self.

    1 Disable winXP prefetcher

    Applicable to AHCI mode and compatibility(IDE) mode.

    - manually edit registry keys

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Memory Management\PrefetchParameters]
    "EnablePrefetcher"=dword:00000000

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOpt imizeFunction]
    "Enable"="N"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\OptimalLayout]
    "EnableAutoLayout"=dword:00000000


    - or download 'Disable WinXP Prefetcher(http://mampan.org/prefetch/Disable_Prefetcher.reg)' and double click.


    Reboot and use your computer.

    How to re-enable WinXP prefetcher

    - manually edit registry keys

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Memory Management\PrefetchParameters]
    "EnablePrefetcher"=dword:00000003

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Schedule]
    "Start"=dword:00000002

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOpt imizeFunction]
    "Enable"="Y"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\OptimalLayout]
    "EnableAutoLayout"=dword:00000001


    - or download 'Enable WinXP Prefetcher(http://mampan.org/prefetch/Enable_Prefetcher.reg)' and double click.


    Reboot.

    2 Office 2003 and Further XP Tweaks:



    Optimizing Windows XP and Office 2003 for Solid State Drives on “Netbooks” And All desktops.

    Problem:

    Slow access / program hang / freeze / stuttering / slow response time on Windows XP, especially with Microsoft Outlook 2003.

    Solution:

    Windows Tweaks:

    - Upgrade DRAM memory to maximum allowed (2gb for Intel Atom based PCs) 4GB desktops (although 3GB is seen by the OS)

    - Make sure that XP system files are either less than 50% of SSD disk capacity (if your machine has more than 1 SSD), or are installed on the larger of the 2.

    - Remove all unnecessary Windows components and leftovers following these directions:

    http://forum.eeeuser.com/viewtopic.php?pid=352761

    Additional Tricks

    - Turn off hibernation to save space and the drive constantly updating the hibernation file. http://www.tech-recipes.com/windows_tips1386.html

    - Turn off System Restore: http://support.microsoft.com/kb/310405

    - Turn off Windows Disk Caching and manually delete the cache files

    Windows XP
    Start at the desktop.
    Right-click on My Computer, then left-click on Properties.
    Click on the Hardware tab at the top.
    Click on the Device Manager button.
    Click on the + next to Disk Drives to expand it.
    Right click on the hard drive on which to turn write caching off, then left click Properties.
    Click on the Policies tab.
    Click on Enable write caching on the disk to remove the tick. It must not be ticked.
    Click OK.

    http://www.accucadd.com/TechNotes/Ca...ehindCache.htm

    How to Disable the 8.3 Name Creation on NTFS Partitions:

    Windows Server 2003 and Windows XP
    To disable the 8.3 name creation on all NTFS partitions, type fsutil.exe behavior set disable8dot3 1 at a command prompt, and then press ENT

    http://support.microsoft.com/kb/121007

    Disable timestamp for last access to a file to speed up Windows

    Another frequently seen recommendation is to disable the setting that keeps track of the last time a file. was accessed. Removing the necessity for the system to keep reading and writing this information may speed up Windows Explorer.

    The command is:

    fsutil behavior set disablelastaccess 1

    Note that some backup programs may need this information. If you wish to restore the timestamp, the command is: fsutil behavior set disablelastaccess 0


    Turn off Indexing on All Drives

    http://xpsearch.info/xps-iman.htm


    Then. Disable the NTFS Change Journal

    The command is:

    fsutil usn deletejournal /d


    See this for additional info:


    http://technet.microsoft.com/en-us/libr … 88042.aspx


    and


    http://commandwindows.com/fsutil.htm

    This may prove the most valuable tweak yet:

    http://www.thin-world.com/microsoft/324446.html

    dskcache.exe, seems M$ have made this file hard to get now, upon searching i did find it.

    from the article i noticed this:

    * When a user types in a document, characters do not appear on the screen until this pause has ended.
    * Keyboard input and mouse input are queued, but they are not processed until this pause has ended.
    * Live performance monitoring (Perfmon) graphs have missing data points during this pause.
    * All running programs appear to stop responding, or "hang," during this pause.
    * When Spooler is under a load from a large number of users, a high CPU usage is displayed for it.


    now this is everything we see with SSD on un tweaked systems, could M$ already issued a fix??

    M$ data: http://support.microsoft.com/kb/Q811392


    Edit:..if you find the file place it direct on C..open command prompt and type.

    c:\dskcache +p c:


    job done...

    http://www.ocztechnologyforum.com/fo...ad.php?t=45192 has a link to download the file


    Anti-Virus / Phishing / Spyware Programs

    - These programs all use a lot of disk access and if at all possible, use the minimum and use an antivirus scanner that is small, compact, and runs relatively fast like Avira free-av.com

    - In any case, the antivirus service should be set to optimize for speed rather than maximum security. For example, set the AV to check only selected lists of files (smart list on Avira), and only check it on READ, not read and write.

    Speeding up specific applications:

    Firefox, IE, etc. See next post

  2. #2
    SSD TIGER Tony's Avatar
    Join Date
    May 2003
    Posts
    10,019
    Blog Entries
    6
    Mobo: various as always testing
    BIOS: various as they never work correctly
    CPU: usually AM3, but sometimes AM2+ and i7
    RAM: I test so much its hard to say
    Vid: 3870x2's...this is the one fixed variable
    PSU: PCPC 1200W/860W
    HDD: Vertex or Vertex EX
    OS: All M$ from XP forward

    Default Internet Exolorer / Firefox cache tweaks and ram drives

    Grab the public beta version of dataram ramdisk

    https://www.cenatek.com/downloads/Da...V3.5_TEST3.msi

    This will allow ram disks to 4GB and image save/reload which is what we are looking for

    If you have 4GB of ram within XP best you will see is 3.3GB within the OS, do not worry as XP is not so much of a memory hog. Follow the onscreen instructions for the ramdisk install but do NOT format the disk just yet.
    If you have 4GB of ram a 1.5GB ramdisk should be ok. If you have 2GB of ram a 512MB ramdisk will be ok. Overall you do need to be looking at getting 4GB in your system for all the tweaks in this thread to work best...so if memory is cheap why not treat yourself ;-)

    Once you have created your ramdisk the app make spew out an error saying unable to load image...this is because the disk is still unformatted...so...go to administrative tools>computer management> disk manager mount the drive, format it NTFS and make a note of its drive letter.

    now exit all programs and reboot.

    Initial boot may now be slower, this is because ramdisk will have saved an image at shutdown and will now remount the image at boot.
    once in XP we need to tweak Internet explorer if this is the browser you use.

    Go to my computer, click on the ramdrive so you are on the root of the disk. Create a folder called IE_Cache...then go to Internet options...on the General tab look for "Temporary Internet files" and hit settings. Set the box size to 50MB or 250MB etc then hit Move folder and point IE to the folder you made on the ramdrive.

    Job done

    IE will now cache all files to the ramdrive, when you power off these files will be saved in an image on the harddrive and remounted for IE to use on next boot.

    I would consider setting IE to save temp files for 5 days only so you do not fill up the available space to quickly.

    Firefox3

    For Firefox3:

    Go to my computer, click on the ramdrive so you are on the root of the disk. Create a folder called FF_Cache

    1. Open a new tab in FF and type "about:config" in the address bar and hit Enter.
    2. Right click anywhere on page and from context menu select "New" and "String".
    3. For string name, type in "browser.cache.disk.parent_directory" (without the quotes).
    4. For string value, type in the path to where you want to move your cache directory. IE D:\FF_cache if D is the ram drive and you created a folder called FF_cache.
    5. Restart Firefox.

    Jod done

  3. #3
    SSD TIGER Tony's Avatar
    Join Date
    May 2003
    Posts
    10,019
    Blog Entries
    6
    Mobo: various as always testing
    BIOS: various as they never work correctly
    CPU: usually AM3, but sometimes AM2+ and i7
    RAM: I test so much its hard to say
    Vid: 3870x2's...this is the one fixed variable
    PSU: PCPC 1200W/860W
    HDD: Vertex or Vertex EX
    OS: All M$ from XP forward

    Default Page file tweaking

    With the limits on XP 32bit and memory running with no page file is a little dangerous. We can however tweak the page file and if you have enough ram run it off the ramdrive.

    now there looks to be a few ways of forcing XP to use physical ram, having read quite a few tweak sites over the past few days i found this following site good at explaining both sides of the argument to tweak or not to tweak.

    http://kadaitcha.cx/performance.html

    Tweak #4 is what you need to look at here, its quite involved and requires reg hacks but it does look straight forward to do.

    Alternatively I just usually do the following:

    start>my computer>right click on nothing and go to properties
    Now you are at system properties, goto advanced> hit the settings button under performance> now goto advanced> In the virtual memory box hit "change"

    This brings you to where we set the page file:

    For C: you need to disable page file altogether. So highlight C hit the button for no paging file and hit SET, now:

    if your ram drive is E highlight this, then put a dot in Custom size and set the following:

    1 if you have 4GB system ram and have set a 1.5GB ramdisk allocate both initial and max to 1024MB

    2 if you have 2GB system ram and have set a 512MB ramdisk allocate both initial and max to 384mb (the remainder can be used for bowser cache etc)

    Now....adding system ram is the best tweak of all if you have only 2GB installed, for ultimate speed you ideally need at least 1024MB for the page file.

    An alternative here is to point the page file at a secondary disk, so if you have an additional hard drive what you can do is create a partition on this drive (10GB is good) and point the page file to this. The rest of the disk can be used for storage as normal.

    If you follow the kadaitcha tweaks you force the windows kernel to load into system ram and run from within this ram, this is very fast but would use up more ram than just pointing the page file at the ramdisk.

    I would say if you have only 2GB system ram and 384MB set for pagefile you are going to have to watch performance, the size of the ramdisk is quite small but has proved fine with my testing here...but your system requirements may differ.

  4. #4
    SSD TIGER Tony's Avatar
    Join Date
    May 2003
    Posts
    10,019
    Blog Entries
    6
    Mobo: various as always testing
    BIOS: various as they never work correctly
    CPU: usually AM3, but sometimes AM2+ and i7
    RAM: I test so much its hard to say
    Vid: 3870x2's...this is the one fixed variable
    PSU: PCPC 1200W/860W
    HDD: Vertex or Vertex EX
    OS: All M$ from XP forward

    Default

    Found a few more that may be worth trying, not sure how much they help so experiment at your own risk for now.


    Original source:

    http://www.netbooks-ph.net/forums/vi....php?f=17&t=77

    Easy Way to Adjust LargeSystemCache

    Note: This tweak may cause problems with ATI cards *this is documented by ATI(tweak forum Admin). Many have complained of file corruptions or instability. If you don't have ATI cards in your system, a significant performance improvement will result.

    ***Normally, the tweak I've seen asks you to go into HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management and change the value to either O or 1 to the adjustment the
    LargeSystemCache.****


    However, in Windows XP, all you have to do is:

    1. Right click My Computer
    2. Select Properties
    3. Click Advanced
    4. Choose Performance
    5. Click Advanced again
    6. Select either Programs or System Cache under Memory Usage.

    Programs = 0 for the registry tweak equivalent
    System Cache = 1 for the registry tweak equivalent




    Memory Performance Tweak

    These Settings will fine tune your systems memory management at least 512MB of ram recommended.

    go to start\run\regedit and then to the following key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Memory Management

    1.DisablePagingExecutive -double click it and in the decimal put a 1 - this allows XP to keep data in memory now instead of paging sections of ram to harddrive yeilds faster performance.

    ***2.LargeSystemCache- double click it and change the decimal to 1 -this allows XP Kernel to Run in memory improves system performance a lot.***

    *** same tweak, just 2 ways of doing the same thing

  5. #5

    Default SSD and Linux

    Hi,

    i got a SSD Core 64GB recently for my Laptop (Lenovo Thinkpad X61s).

    The migration was pretty straight forward as i used an external usb enclosure for the ssd first in order to copy the relevant partitions over.

    Subjective impression
    Subjectively the performance increase is quite impressive compared to the original drive (WD1600BEVS-08RS).
    E.g. acroread starts within about 5s compared to 25s, firefox and other apps like pidgin and sylpheed-claws i use often instantly start.
    Eclipse, OpenOffice etc. are also a lot faster now.

    Real measurements
    Some thing which botherd me a little bit though were the somehow strange results i got from e.g. running "hdparm -t ..." on that drive; the results are around ~96MB/s which of course is a lot faster then the original drive though i exspected to see more as the maximum speed should be even faster.
    Other tools like piozone and bonnie++ show similar results.

    After searching around quite a bit i found the hint from highlandsun in this thread to use dd to measure speed.

    So i wrote a little script which automatically runs multiple test runs using dd with different block sizes and offsets on a given device.
    Please note that this script is provided as is and without any warranty so you use it at your own risk.
    Code:
    #!/bin/bash
    #Script for multiple test runs of dd on a hard disk using different block sizes and offsets.
    #This script is provided as is and there is no warranty at all so use it at your own risk.
    
    TEST_RUNS=20
    DATA_SIZE=10000000
    
    #read size of disk in sectors
    DISK_SIZE=`fdisk -lu $1 | grep ".*sectors$" | awk '{print $8}'`
    
    #get sector size
    SECTOR_SIZE=`fdisk -lu $1 | grep "^Units" | awk '{ print $9}'`
    
    echo "Size of $1 in sectors: $DISK_SIZE - With $SECTOR_SIZE bytes per sector."
    echo "Size of $1 in bytes: $(($DISK_SIZE * $SECTOR_SIZE))"
    echo "Size of data being read: $DATA_SIZE"
    
    for j in 1 2 4;
    do
            BLOCK_SIZE=$(($SECTOR_SIZE * $j))
            BLOCK_COUNT=$(($DATA_SIZE / $BLOCK_SIZE))
    
            echo -e "\n\nPerforming reads with block size: $BLOCK_SIZE"
    
            for ((i=0; i < $TEST_RUNS ; i++));
            do
                    OFFSET=$(($DISK_SIZE / $TEST_RUNS / $j * $i))
                    echo -e "\nReading from offset $OFFSET blocks with $BLOCK_SIZE bytes per block. Offset in bytes = $(($OFFSET * $BLOCK_SIZE))"
    
                    #sync first.
                    #Changed this as suggested by highlandsun. Though for linux a single call of sync should be safe; but i do not know about other *nixes.
                    sync; sync
                    #clear caches. Caution this throws away all data not written to disk!
                    echo 3 > /proc/sys/vm/drop_caches
    
                    dd if=$1 of=/dev/null bs=$BLOCK_SIZE count=$BLOCK_COUNT skip=$OFFSET ;
            done;
    done
    You must be root in order to run this script.
    The device you want to do the test runs on must be given as parameter e.g.: "./benchmark_hd_script /dev/sda".

    Pleas note that the script emptys the cache before each test run and this might result in loss of data.
    Though "sync" is called to try to prevent actual data loss it still may not be safe this way.
    So be sure to safe and close any important work before running this!

    In order to get the min and max values this script produces it can be run in the following way:
    Code:
    ./benchmark_hd_script /dev/sda 2> result 
    awk 'BEGIN {max=0; min=1000; avg=0; n=0;} {val = int($8); if(max<val)max=val; if(val!=0 && min>val)min=val; if(val!=0){avg+=val; n++;}} END {print "Max: " max " - Min: " min " - Average: " avg/n}' result
    rm result
    I dunno if this whole approach gives real consistent results at least it produces some number to work with.
    Maybe someone can comment if this approach really makes sense.

    Results
    Hdparm -t
    ~96MB/s
    piozone
    ~96MB/s
    benchmark_hd_script
    Min: ~88MB/s - Max: ~120MB/s - Average: ~107MB/s
    benchmark_hd_script
    Max: 116 - Min: 98 - Average: 110.207
    bonnie++ with 2GB RAM and filesize 4GB, no other options set run on ext3
    Code:
    Version 1.93c       ------Sequential Output------ --Sequential Input- --Random-
    Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
    Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
    eddie         4000M   345  99 25291  12 22912  14  1623  99 111116  40 144.2   4
    Latency             45699us   23854ms    7994ms   11929us     684ms     400ms
    Version 1.93c       ------Sequential Create------ --------Random Create--------
    eddie               -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
                  files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                     16  1530   3 +++++ +++ 14197  25 30732  69 +++++ +++ +++++ +++
    Latency              1502us    1214us     779us     416us      33us     450us
    1.93c,1.93c,eddie,1,1227132913,4000M,,345,99,25291,12,22912,14,1623,99,111116,40,144.2,4,16,,,,,1530,3,+++++,+++,14197,25,30732,69,+++++,+++,+++++,+++,45699us,23854ms,7994ms,11929us,684ms,400ms,1502us,1214us,779us,416us,33us,450us
    bonnie++ with 2GB RAM and filesize 4GB, no other options set run on ext2
    Code:
    Version  1.94       ------Sequential Output------ --Sequential Input- --Random-
    Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
    Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
    eddie         4000M   820  98 31142   7 21215  10  1348  99 122917  42 140.7   2
    Latency             21218us    3608ms    3623ms    9079us     397ms     467ms
    Version  1.94       ------Sequential Create------ --------Random Create--------
    eddie               -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
                  files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                     16   912  30 +++++ +++ +++++ +++  3053  97 +++++ +++  9508  91
    Latency               918us     104us      55us     816us    1487us     363us
                                   1.93c,1.94,eddie,1,1227482065,4000M,,820,98,31142,7,21215,10,1348,99,122917,42,140.7,2,16,,,,,912,30,+++++,+++,+++++,+++,3053,97,+++++,+++,9508,91,21218us,3608ms,3623ms,9079us,397ms,467ms,918us,104us,55us,816us,1487us,363us
    Configuration
    Quite a few people suggest to use ext2 or at least mount ext3 as ext2 so the journal is not used because this i supposed to reduce write cycles on the disk thus increasing life time of the disk.
    After doing some more testing, including a bonnie++ benchmark testrun, ext2 even appears to be a little bit faster then ext3 so i'll stick to this for now.

    Output from "lspci -v":
    Code:
    ...
    00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03) (prog-if 01 [AHCI 1.0])
            Subsystem: Lenovo ThinkPad T61
            Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 16
            I/O ports at 1c08 [size=8]
            I/O ports at 183c [size=4]
            I/O ports at 1c00 [size=8]
            I/O ports at 1838 [size=4]
            I/O ports at 18e0 [size=32]
            Memory at f8426000 (32-bit, non-prefetchable) [size=2K]
            Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Count=1/4 Enable-
            Capabilities: [70] Power Management version 3
            Capabilities: [a8] SATA HBA <?>
            Kernel driver in use: ahci
    ...
    Output from "dmesg":
    Code:
    ...
    ahci 0000:00:1f.2: version 3.0
    ahci 0000:00:1f.2: PCI INT B -> GSI 16 (level, low) -> IRQ 16
    ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 3 ports 1.5 Gbps 0x5 impl SATA mode
    ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part 
    ahci 0000:00:1f.2: setting latency timer to 64
    scsi0 : ahci
    scsi1 : ahci
    scsi2 : ahci
    ata1: SATA max UDMA/133 irq_stat 0x00400040, connection status changed irq 16
    ata2: DUMMY
    ata3: SATA max UDMA/133 abar m2048@0xf8426000 port 0xf8426200 irq 16
    Clocksource tsc unstable (delta = -99233080 ns)
    ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
    ata1.00: ACPI cmd ef/02:00:00:00:00:a0 succeeded
    ata1.00: ACPI cmd f5/00:00:00:00:00:a0 filtered out
    ata1.00: ATA-8: OCZ CORE_SSD, 02.10104, max UDMA/100
    ata1.00: 125206528 sectors, multi 0: LBA 
    ata1.00: ACPI cmd ef/02:00:00:00:00:a0 succeeded
    ata1.00: ACPI cmd f5/00:00:00:00:00:a0 filtered out
    ata1.00: configured for UDMA/100
    ata1.00: configured for UDMA/100
    ata1: EH complete
    ata3: SATA link down (SStatus 0 SControl 300)
    scsi 0:0:0:0: Direct-Access     ATA      OCZ CORE_SSD     02.1 PQ: 0 ANSI: 5
    sd 0:0:0:0: [sda] 125206528 512-byte hardware sectors: (64.1 GB/59.7 GiB)
    sd 0:0:0:0: [sda] Write Protect is off
    sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
    sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
    sd 0:0:0:0: [sda] 125206528 512-byte hardware sectors: (64.1 GB/59.7 GiB)
    sd 0:0:0:0: [sda] Write Protect is off
    sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
    sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
     sda: sda1 sda2 sda3 sda4 < sda5 sda6 >
    sd 0:0:0:0: [sda] Attached SCSI disk
    ...
    Output from "hdparm -iv /dev/sda":
    Code:
    /dev/sda:
     IO_support    =  0 (default) 
     readonly      =  0 (off)
     readahead     = 256 (on)
     geometry      = 7793/255/63, sectors = 125206528, start = 0
    
     Model=OCZ CORE_SSD                            , FwRev=02.10104, SerialNo=DC644000007C        
     Config={ Fixed }
     RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=63
     BuffType=unknown, BuffSize=0kB, MaxMultSect=1, MultSect=?1?
     CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=125206528
     IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
     PIO modes:  pio0 pio1 pio2 pio3 pio4 
     DMA modes:  mdma0 mdma1 mdma2 
     UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 
     AdvancedPM=no WriteCache=enabled
     Drive conforms to: unknown:  ATA/ATAPI-1,2,3,4,5,6,7
    
     * signifies the current active mode
    Output from "sdparm -a --long /dev/sda":
    Code:
        /dev/sda: ATA       OCZ CORE_SSD      02.1
        Direct access device specific parameters: WP=0  DPOFUA=0
    Read write error recovery [rw] mode page:
      AWRE        1  Automatic write reallocation enabled
      ARRE        0  Automatic read reallocation enabled
      TB          0  Transfer block
      RC          0  Read continuous
      EER         0  Enable early recovery
      PER         0  Post error
      DTE         0  Data terminate on error
      DCR         0  Disable correction
      RRC         0  Read retry count
      COR_S       0  Correction span (obsolete)
      HOC         0  Head offset count (obsolete)
      DSOC        0  Data strobe offset count (obsolete)
      WRC         0  Write retry count
      RTL         0  Recovery time limit (ms)
    Caching (SBC) [ca] mode page:
      IC          0  Initiator control
      ABPF        0  Abort pre-fetch
      CAP         0  Caching analysis permitted
      DISC        0  Discontinuity
      SIZE        0  Size enable
      WCE         1  Write cache enable
      MF          0  Multiplication factor
      RCD         0  Read cache disable
      DRRP        0  Demand read retention priority
      WRP         0  Write retention priority
      DPTL        0  Disable pre-fetch transfer length
      MIPF        0  Minimum pre-fetch
      MAPF        0  Maximum pre-fetch
      MAPFC       0  Maximum pre-fetch ceiling
      FSW         0  Force sequential write
      LBCSS       0  Logical block cache segment size
      DRA         1  Disable read ahead
      NV_DIS      0  Non-volatile cache disable
      NCS         0  Number of cache segments
      CSS         0  Cache segment size
    Control [co] mode page:
      TST         0  Task set type
      TMF_ONLY    0  Task management functions only
      D_SENSE     0  Descriptor format sense data
      GLTSD       1  Global logging target save disable
      RLEC        0  Report log exception condition
      QAM         0  Queue algorithm modifier
      QERR        0  Queue error management
      RAC         0  Report a check
      UA_INTLCK   0  Unit attention interlocks control
      SWP         0  Software write protect
      ATO         0  Application tag owner
      TAS         0  Task aborted status
      AUTOLOAD    0  Autoload mode
      BTP        -1  Busy timeout period (100us)
      ESTCT      30  Extended self test completion time (sec)

    Overall i am very happy with this nice drive.
    I hope this information is usefull.

    Edit: Added average to calculation of script results.
    Edit2: Increasing TEST_RUNS in the above script leads to "more" normally distributed results (quite obvious as we increase the sample size).
    With a value of 50 i got the following results:
    Max: 116 - Min: 98 - Average: 110.207
    Edit3: Switched to ext2; added bonnie++ results for ext2

    Best regards

    wonko
    Last edited by wonko the sane; 11-29-2008 at 11:40 AM. Reason: Added test results

  6. #6

    Default

    A standard bit of Unix knowledge: the "sync" system call is asynchronous. It issues a request to the filesystem to perform a sync but it doesn't wait for it to occur. But, if you issue a second sync call, it has to wait until all outstanding disk activity completes before it can start. So, any Unix sysadmin knows to issue "sync; sync" whenever doing this type of operation. It's only guaranteed that the cache is fully sync'd when the 2nd sync command starts (and then it exits right away).

    You should do this in your script, before dropping the cache.

  7. #7

    Default

    Thanks for your answer highlandsun,

    as what the linux man page says the sync call actually does wait until the write has finished; even though the standard specification says it exactly like you explained.
    So i don't know how other *nixes handle this but for linux a single call should be safe.

    Anyways as this doesnt make much of a difference to the actual results of the above script, i'll add the second call like you explained just for making sure even "more standard compliant" *nixes don't get messed up.


    Best regards

    wonko

Closed Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts