AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Festplattenstress erzeugen

Ein Thema von emsländer · begonnen am 29. Jan 2005 · letzter Beitrag vom 29. Jan 2005
Antwort Antwort
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Festplattenstress erzeugen

  Alt 29. Jan 2005, 15:52
Hallo,

für ein Testprogramm muss ich einen Plattenstress erzeugen.

10,30,60 sekunden Step by Step read
Messungen: Time for Step by Step, Bytes Read

10,30,60 sekunden ramdom seek:
Messungen: Time for Track to Track, Bytes Read

DMA - Lesegeschwindigkeit ausmessen.


und nu wie?

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#2

Re: Festplattenstress erzeugen

  Alt 29. Jan 2005, 19:43
Falls das Programm nur unter NT aufwärts laufen soll, kann man CreateFile, FileRead verwenden um direkt Sektoren auszulesen.

Damit läßt sich dann analog zu Dateien eine Reihe von aufeinanderfolgenden Sektoren auslesen.
Diese Sache sollte auch ungecacht (von der Windows-Seite her) sein, also für Performance-Messungen geeignet.
Random-Access muß halt durch möglichst unregelmäßigen Zugriff gemessen werden. Also nicht aufeinanderfolgende Daten, sondern "zufällig" verteilt.


Mit
Delphi-Quellcode:
DeviceHandle := CreateFile('\\.\PHYSICALDRIVE0', GENERIC_READ,
    FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,
    FILE_FLAG_RANDOM_ACCESS, 0);
kann man auf die erste physische Festplatte zugreifen.

FileSeek(DeviceHandle, Position, ord(soBeginning)); Position ist die BytePosition (also nicht Sektor basiert).

FileRead(DeviceHandle, SectorBuffer^, Count); liest dann einfach Daten in einen Puffer.

Delphi-Quellcode:
DeviceIoControl(DeviceHandle, IOCTL_DISK_GET_DRIVE_GEOMETRY, nil, 0,
    @DiskGeometry, sizeof(DiskGeometry), Dummy, nil)
liefert alle wichtigen Informationen zum Aufbau der Festplatte, z.B. Bytes pro Sektor.

CloseHandle(DeviceHandle); sollte am Ende nicht vergessen werden!

Ein Paar Sachen sind zu beachten: Man kann nur an Sektorgrenzen mit dem Lesen beginnen und man braucht Administratorrechte.

Unter 9X geht das auch ist aber aufwändiger: Bin gerade dabei dafür eine DLL zu entwickeln; man muß auf BIOS-Aufrufe zurückgreifen und das geht nur von einer 16-Bit DLL oder einem Treiber (noch komplizierter und nicht in Delphi machbar) aus.

Ein Blick in die Windows-API Hilfe (MSDN) zu diesen Funktionen ist für weitere Details sicher sinnvoll.

Zur DMA Lesegeschwindigkeit:
Ich wüßte nicht wie man das machen soll, außer daß man es abstellt im Gerätemanager, wofür man (soweit ich mich erinnere) einen Neustart braucht.

Hoffe das hilft,
Gruß Maël.

P.S.: Aus Neugierde: Was ist das für ein Testprogramm?
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#3

Re: Festplattenstress erzeugen

  Alt 29. Jan 2005, 19:45
Ach so, noch etwas:

Die Windows-API Funktionen QueryPerformanceCounter zusammen mit QueryPerformanceFrequency erlauben dann natürlich die Zeitmessung.
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#4

Re: Festplattenstress erzeugen

  Alt 29. Jan 2005, 19:52
Erstmal Danke,

da soll mal ein Proggi bei rauskommen, welches zunächst die Performance testet. Auch Temperatur soll dabei gemessen werden etc.

Dann soll auch jeweils eine Platte einer Reihe einem Dauerstresstest unterzogen werden. (evtl. bis zum dadurch provozierten Ableben)


Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz