(on Wikipedia)
https://sourceforge.net/projects/hdparm/
A storage device information / settings tool.
Table of Contents [hide]
Usage notes ∞
Settings ∞
You can edit /etc/rc.local (rc.local) to add:
/sbin/hdparm -a8 -c1 -d1 -k1 -m16 -u1 -W1 /dev/hda
Spoiler
setting fs readahead to 8 setting 32-bit IO_support flag to 1 setting multcount to 16 setting unmaskirq to 1 (on) setting using_dma to 1 (on) setting keep_settings to 1 (on) setting drive write-caching to 1 (on) multcount = 16 (on) IO_support = 1 (32-bit) unmaskirq = 1 (on) using_dma = 1 (on) keepsettings = 1 (on) readahead = 8 (on)
However, these settings gave me a 13MB/s decrease in speed! Obviously, experimentation and research is necessary.
Benchmarking ∞
hdparm -t /dev/hda
Remember to close off all applications which might use the HDD. Run the benchmark multiple times after a fresh boot.
Limiting optical drive speeds (to reduce noise) ∞
See Quiet computing
Working with SSDs ∞
hdparm 9.27 has wiper-2.5
Tested 2010-01-27 on Unity Linux 64bit-beta2, updated 2010-01-26.
su - # Fix wiper.sh from complaining ln -s /bin/stat /usr/bin ln -s /bin/id /usr/bin/id make cd wiper-2.5 ./wiper.sh /dev/sda1
Spoiler
wiper.sh: Linux SATA SSD TRIM utility, version 2.5, by Mark Lord. get_realpath:26: unrecognized modifier `0' /dev/sda1: unable to determine full pathname, aborting.
fuck..
hdparm -I /dev/sda
Spoiler
/dev/sda: ATA device, with non-removable media Model Number: OCZ-AGILITY Serial Number: REDACTED Firmware Revision: 1.5 Standards: Supported: 8 7 6 5 Likely used: 8 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 125045424 LBA48 user addressable sectors: 125045424 Logical Sector size: 512 bytes Physical Sector size: 512 bytes device size with M = 1024*1024: 61057 MBytes device size with M = 1000*1000: 64023 MBytes (64 GB) cache/buffer size = unknown Nominal Media Rotation Rate: Solid State Device Capabilities: LBA, IORDY(can be disabled) Queue depth: 32 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 1 Current = 1 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=120ns IORDY flow control=120ns Commands/features: Enabled Supported: SMART feature set Security Mode feature set * Power Management feature set * Write cache * Look-ahead * Host Protected Area feature set * WRITE_BUFFER command * READ_BUFFER command * DOWNLOAD_MICROCODE SET_MAX security extension * 48-bit Address feature set * Device Configuration Overlay feature set * Mandatory FLUSH_CACHE * FLUSH_CACHE_EXT * SMART self-test * General Purpose Logging feature set * Gen1 signaling speed (1.5Gb/s) * Gen2 signaling speed (3.0Gb/s) * Native Command Queueing (NCQ) * Phy event counters DMA Setup Auto-Activate optimization Device-initiated interface power management * Software settings preservation * Data Set Management TRIM supported * Deterministic read data after TRIM Security: supported not enabled not locked frozen not expired: security count not supported: enhanced erase Checksum: correct
DiskTRIM ∞
http://disktrim.sourceforge.net/
smart install lib64gtkmm2.4-devel lib64dbus-glib-1-devel gcc-c++
Build DiskTRIM window.cpp: In constructor ‘Window::Window(Window::arg_t&)’: window.cpp:77: error: ‘set_icon_name’ was not declared in this scope window.cpp: In member function ‘void Window::swap_visible()’: window.cpp:218: error: ‘get_visible’ was not declared in this scope make: *** [obj/window.o] Error 1
FUCK…
-
gcc-c++fixes/bin/sh: g++: command not found

ported