{"id":392,"title":"Disk performans\u0131n\u0131 \u00f6l\u00e7mek i\u00e7in PowerShell scripti","content":"<p>Disk performans\u0131n\u0131 &ouml;l&ccedil;mek i&ccedil;in PowerShell scripti, \u0130\u015fte hem read hem de write latency de\u011ferlerini &ouml;l&ccedil;en kapsaml\u0131 bir script:<\/p>\n<pre>&nbsp;<\/pre>\n<pre class=\"language-markup\"><code># Disk Latency Test Script\n# Read ve Write latency de\u011ferlerini &ouml;l&ccedil;er\n\nparam(\n    [string]$TestPath = \"C:\\\",\n    [int]$TestFileSizeMB = 100,\n    [int]$BlockSizeKB = 4,\n    [int]$IterationCount = 100\n)\n\nWrite-Host \"=== Disk Latency Test Ba\u015flat\u0131l\u0131yor ===\" -ForegroundColor Cyan\nWrite-Host \"Test Yolu: $TestPath\"\nWrite-Host \"Test Dosya Boyutu: $TestFileSizeMB MB\"\nWrite-Host \"Block Size: $BlockSizeKB KB\"\nWrite-Host \"\u0130terasyon Say\u0131s\u0131: $IterationCount\"\nWrite-Host \"\"\n\n# Test dosyas\u0131 yolu\n$testFile = Join-Path $TestPath \"disk_latency_test.tmp\"\n\n# Sonu&ccedil;lar\u0131 tutacak arrayler\n$writeLatencies = @()\n$readLatencies = @()\n\ntry {\n    # Write Latency Testi\n    Write-Host \"Write Latency Testi Ba\u015fl\u0131yor...\" -ForegroundColor Yellow\n    \n    $blockSize = $BlockSizeKB * 1024\n    $data = New-Object byte[] $blockSize\n    $random = New-Object System.Random\n    $random.NextBytes($data)\n    \n    for ($i = 1; $i -le $IterationCount; $i++) {\n        $stopwatch = [System.Diagnostics.Stopwatch]::StartNew()\n        \n        $fileStream = [System.IO.File]::Open($testFile, [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write, [System.IO.FileShare]::None)\n        $fileStream.Write($data, 0, $data.Length)\n        $fileStream.Flush()\n        $fileStream.Close()\n        \n        $stopwatch.Stop()\n        $writeLatencies += $stopwatch.Elapsed.TotalMilliseconds\n        \n        Write-Progress -Activity \"Write Test\" -Status \"\u0130terasyon $i\/$IterationCount\" -PercentComplete (($i \/ $IterationCount) * 100)\n    }\n    \n    Write-Host \"Write Latency Testi Tamamland\u0131!\" -ForegroundColor Green\n    Write-Host \"\"\n    \n    # Read Latency Testi\n    Write-Host \"Read Latency Testi Ba\u015fl\u0131yor...\" -ForegroundColor Yellow\n    \n    for ($i = 1; $i -le $IterationCount; $i++) {\n        $stopwatch = [System.Diagnostics.Stopwatch]::StartNew()\n        \n        $fileStream = [System.IO.File]::Open($testFile, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::Read)\n        $buffer = New-Object byte[] $blockSize\n        $fileStream.Read($buffer, 0, $buffer.Length) | Out-Null\n        $fileStream.Close()\n        \n        $stopwatch.Stop()\n        $readLatencies += $stopwatch.Elapsed.TotalMilliseconds\n        \n        Write-Progress -Activity \"Read Test\" -Status \"\u0130terasyon $i\/$IterationCount\" -PercentComplete (($i \/ $IterationCount) * 100)\n    }\n    \n    Write-Host \"Read Latency Testi Tamamland\u0131!\" -ForegroundColor Green\n    Write-Host \"\"\n    \n    # Sonu&ccedil;lar\u0131 hesapla\n    $writeStats = $writeLatencies | Measure-Object -Average -Minimum -Maximum\n    $readStats = $readLatencies | Measure-Object -Average -Minimum -Maximum\n    \n    # Sonu&ccedil;lar\u0131 g&ouml;ster\n    Write-Host \"=== TEST SONU&Ccedil;LARI ===\" -ForegroundColor Cyan\n    Write-Host \"\"\n    Write-Host \"WRITE LATENCY:\" -ForegroundColor Yellow\n    Write-Host \"  Ortalama: $([math]::Round($writeStats.Average, 2)) ms\"\n    Write-Host \"  Minimum:  $([math]::Round($writeStats.Minimum, 2)) ms\"\n    Write-Host \"  Maximum:  $([math]::Round($writeStats.Maximum, 2)) ms\"\n    Write-Host \"\"\n    Write-Host \"READ LATENCY:\" -ForegroundColor Yellow\n    Write-Host \"  Ortalama: $([math]::Round($readStats.Average, 2)) ms\"\n    Write-Host \"  Minimum:  $([math]::Round($readStats.Minimum, 2)) ms\"\n    Write-Host \"  Maximum:  $([math]::Round($readStats.Maximum, 2)) ms\"\n    Write-Host \"\"\n    \n    # IOPS hesapla (kabaca)\n    $writeIOPS = [math]::Round(1000 \/ $writeStats.Average, 0)\n    $readIOPS = [math]::Round(1000 \/ $readStats.Average, 0)\n    \n    Write-Host \"TAHMINI IOPS (${BlockSizeKB}KB block size):\" -ForegroundColor Yellow\n    Write-Host \"  Write IOPS: ~$writeIOPS\"\n    Write-Host \"  Read IOPS:  ~$readIOPS\"\n    Write-Host \"\"\n    \n}\ncatch {\n    Write-Host \"HATA: $($_.Exception.Message)\" -ForegroundColor Red\n}\nfinally {\n    # Test dosyas\u0131n\u0131 temizle\n    if (Test-Path $testFile) {\n        Remove-Item $testFile -Force\n        Write-Host \"Test dosyas\u0131 temizlendi.\" -ForegroundColor Gray\n    }\n}<\/code><\/pre>\n<pre><code class=\"language-powershell\">\n<\/code><\/pre>\n<p><strong>Kullan\u0131m &ouml;rnekleri:<\/strong><\/p>\n<pre><code class=\"language-powershell\"># Varsay\u0131lan ayarlarla &ccedil;al\u0131\u015ft\u0131r (C:\\ s&uuml;r&uuml;c&uuml;s&uuml;nde)\n.\\disk-latency-test.ps1\n\n# D:\\ s&uuml;r&uuml;c&uuml;s&uuml;nde test et\n.\\disk-latency-test.ps1 -TestPath \"D:\\\"\n\n# Daha k&uuml;&ccedil;&uuml;k dosya ve daha az iterasyon ile h\u0131zl\u0131 test\n.\\disk-latency-test.ps1 -TestFileSizeMB 10 -IterationCount 50\n\n# Farkl\u0131 block size ile test (&ouml;rn: 64KB)\n.\\disk-latency-test.ps1 -BlockSizeKB 64\n<\/code><\/pre>\n<p><strong>Not:<\/strong><\/p>\n<ul>\n<li>Script'i &ccedil;al\u0131\u015ft\u0131rmak i&ccedil;in PowerShell'i <strong>y&ouml;netici olarak<\/strong> a&ccedil;man\u0131z gerekebilir<\/li>\n<li>Test s\u0131ras\u0131nda disk &uuml;zerine dosya yaz\u0131laca\u011f\u0131 i&ccedil;in yeterli alan oldu\u011fundan emin olun<\/li>\n<li>Daha do\u011fru sonu&ccedil;lar i&ccedil;in arka planda &ccedil;al\u0131\u015fan programlar\u0131 kapat\u0131n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>","excerpt":"Script, write ve read latency de\u011ferlerini milisaniye cinsinden \u00f6l\u00e7er ve ortalama, minimum ve maximum de\u011ferleri g\u00f6sterir.","created_at":"2026-02-04 22:19:53","updated_at":"2026-09-23 14:09:06","category_id":6,"view_count":577,"reading_time":3,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2026-02-04 19:19:53","featured_image":"\/uploads\/images\/2026\/02\/69839b9bf09e0_1770232731.jpg","slug":"disk-performansini-olcmek-icin-powershell-scripti","category_name":"Sistem","category_slug":"sistem"}