Bu testi nasıl yapıyorsunuz?
Kısıtlamayı nasıl tespit ediyorsunuz?
Tespit etmenin birden fazla yolu var
Ubuntu ve windows olmak üzere 2 ayrı işletim sistemini aşağıda ki gibi test edebilirsin bundan emin olamazsan hata alırsan başka farklı yöntemlerde var.
Cpu ve nvme testi.
Edit ek: Vmware üzerinden kurulduğu için diskte nvme yazmayabilir nvme testini yazdırarak alıyorum ben yazma okuma hızlarına bakıyorum.
Bu Windows için powershelle yazıcaksın
# =========================================================
# VDS/VPS CPU ve Disk (NVMe mi?) Kontrol + Basit Benchmark
# Windows PowerShell (Admin önerilir) için tek blok.
# =========================================================
Write-Host "====================[ 1) CPU BİLGİSİ ]===================="
# vCPU (LogicalProcessors), çekirdek, max MHz
Get-CimInstance Win32_Processor |
Select-Object Name, NumberOfCores, NumberOfLogicalProcessors, MaxClockSpeed |
Format-List
Write-Host "`n====================[ 2) ANLIK CPU FREKANSI ]===================="
# Bazı sistemlerde sayaç/alan farklılık gösterebilir ama genelde çalışır
Get-CimInstance Win32_PerfFormattedData_Counters_ProcessorInformation |
Select-Object Name, ProcessorFrequency |
Format-Table -AutoSize
Write-Host "`n====================[ 3) CPU STRES TESTİ (throttle var mı?) ]===================="
Write-Host "# 4 iş parçacığı ile CPU'yu yük altına sokuyorum. (Dilersen 4 yerine vCPU sayını yaz)"
Write-Host "# Durdurmak için: Get-Job | Stop-Job -Force ; Get-Job | Remove-Job"
for ($i=0; $i -lt 4; $i++) {
Start-Job -ScriptBlock { while ($true) { [Math]::Sqrt(123456789) | Out-Null } } | Out-Null
}
Write-Host "# 10 saniye boyunca frekansı izliyorum (yük altında artıyor mu?):"
1..10 | ForEach-Object {
$freq = Get-CimInstance Win32_PerfFormattedData_Counters_ProcessorInformation |
Where-Object { $_.Name -eq "_Total" } |
Select-Object -ExpandProperty ProcessorFrequency
Write-Host ("[{0}] _Total Frequency: {1} MHz" -f $_, $freq)
Start-Sleep -Seconds 1
}
Write-Host "`n====================[ 4) CPU YÜK TESTİNİ DURDUR ]===================="
Get-Job | Stop-Job -Force
Get-Job | Remove-Job
Write-Host "`n====================[ 5) DISK NVMe mi? ]===================="
# BusType NVMe ise NVMe'dir
Get-PhysicalDisk |
Select-Object FriendlyName, MediaType, BusType, Size |
Format-Table -AutoSize
Write-Host "`n====================[ 6) DISK HIZ TESTİ ]===================="
Write-Host "# DiskSpd (Microsoft) en doğru araçtır. Sisteminde yoksa kurman gerekir."
Write-Host "# Alternatif hızlı kontrol: winsat (Windows Server'da bazen kapalı olabilir)."
try {
winsat disk -drive c
} catch {
Write-Host "winsat çalışmadı. DiskSpd önerilir (Microsoft aracı)."
}
Write-Host "`n====================[ SONUÇ NASIL YORUMLANIR? ]===================="
Write-Host @"
- CPU kısıt şüphesi:
* Yük altındayken ProcessorFrequency belirgin artmıyor / sabit düşük kalıyorsa
* Benchmark skorları aynı CPU modeline göre ciddi düşükse
- NVMe doğrulama:
* Get-PhysicalDisk çıktısında BusType = NVMe görürsen NVMe'dir.
"@Bu ubuntu için #!/usr/bin/env bash
# =========================================================
# VDS/VPS CPU ve Disk (NVMe mi?) Kontrol + Basit Benchmark
# Ubuntu 22.04 için tek seferde çalıştır.
# Çalıştırma:
# chmod +x vds_test.sh
# ./vds_test.sh
# =========================================================
set -e
echo "====================[ 1) CPU BİLGİSİ ]===================="
# vCPU sayısı, model, sanallaştırma türü, frekans bilgileri
lscpu | egrep -i 'Model name|CPU\(s\)|Thread|Core|Socket|Virtualization|Hypervisor|MHz|max|min'
echo
echo "====================[ 2) ANLIK MHz İZLEME ]===================="
echo "# Yük yokken düşük MHz normal."
echo "# Önemli olan: YÜK ALTINDA MHz artıyor mu?"
echo "# 5 saniye boyunca anlık MHz örnekliyorum:"
for i in {1..5}; do
echo "---- örnek $i ----"
awk -F': ' '/cpu MHz/ {print $2}' /proc/cpuinfo | head -n 8
sleep 1
done
echo
echo "====================[ 3) CPU STRES TESTİ (throttle var mı?) ]===================="
echo "# stress-ng kurulu değilse kuracağım, sonra tüm çekirdekleri 20 sn yükleyeceğim."
if ! command -v stress-ng >/dev/null 2>&1; then
sudo apt update -y
sudo apt install -y stress-ng
fi
# Çekirdek sayısını otomatik al
CPU_CORES=$(nproc)
echo "# Algılanan vCPU: $CPU_CORES"
echo "# 20 saniye %100 yük veriyorum..."
stress-ng --cpu "$CPU_CORES" --cpu-method matrixprod --timeout 20s --metrics-brief || true
echo
echo "====================[ 4) sysbench CPU BENCH (kıyas için skor) ]===================="
echo "# sysbench kurulu değilse kuracağım. 30 sn test, thread=vCPU."
if ! command -v sysbench >/dev/null 2>&1; then
sudo apt update -y
sudo apt install -y sysbench
fi
sysbench cpu --threads="$CPU_CORES" --time=30 run
echo
echo "====================[ 5) DISK NVMe mi? (Doğrulama) ]===================="
echo "# tran=nvme görürsen NVMe. rota=0 SSD, rota=1 HDD."
lsblk -d -o NAME,MODEL,SIZE,ROTA,TRAN
echo
echo "====================[ 6) DISK HIZ TESTİ (DİKKAT: yazma testi) ]===================="
echo "# Bu test 2GB dosya yazar/okur. Üretimde dikkat."
echo "# Yazma (cache etkisini azaltmak için direct):"
TESTFILE=/tmp/disk_test_2G.bin
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null
dd if=/dev/zero of="$TESTFILE" bs=1M count=2048 oflag=direct status=progress
echo
echo "# Okuma (direct):"
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null
dd if="$TESTFILE" of=/dev/null bs=1M iflag=direct status=progress
echo
echo "# Test dosyasını siliyorum."
rm -f "$TESTFILE"
echo
echo "====================[ SONUÇ NASIL YORUMLANIR? ]===================="
cat <<'EOF'
- CPU kısıt şüphesi:
* nproc/lscpu 4 vCPU diyip performans çok düşükse
* stress altında MHz hiç yükselmiyor / hep düşük kalıyorsa
* sysbench skoru aynı CPU modelinin tipik skorlarına göre ciddi düşükse (örn %30-50+)
- NVMe doğrulama:
* lsblk çıktısında TRAN sütununda "nvme" görürsen NVMe'dir.
- Disk hız:
* NVMe tipik olarak yüzlerce MB/s - birkaç GB/s arası çıkabilir (altyapıya göre değişir).
EOF