19 poin oleh GN⁺ 2025-09-04 | Belum ada komentar. | Bagikan ke WhatsApp
  • Secara umum, batas performa server dinilai dari tingkat penggunaan % CPU pada alat pemantauan seperti top, tetapi pada kenyataannya metrik ini tidak mencerminkan performa secara linear
  • Hasil pengujian dengan stress-ng pada lingkungan Ryzen 9 5900X menunjukkan bahwa saat penggunaan 50%, beban kerja nyata sudah mencapai 60~100%, sehingga ada selisih besar dengan metrik tersebut
  • Penyebab utamanya adalah hyper-threading dan turbo boost, di mana berbagi sumber daya antar core logis dan perubahan kecepatan clock mendistorsi metrik
  • Karena itu, alih-alih hanya melihat penggunaan CPU, membandingkan benchmark beban kerja nyata yang dapat diproses dengan throughput saat ini adalah indikator yang lebih akurat
  • Jika penggunaan CPU ditafsirkan secara linear, estimasi performa bisa sangat meleset, sehingga saat merencanakan sistem diperlukan pendekatan berbasis benchmark

Ketidaksesuaian antara angka penggunaan CPU server dan throughput nyata

  • Saat mengoperasikan server, banyak orang ingin memastikan apakah sistem sudah mendekati penggunaan maksimum
  • Umumnya mereka merujuk pada nilai tertinggi di antara penggunaan jaringan, memori, dan CPU melalui alat pemantauan seperti top
  • Namun dalam praktiknya muncul masalah bahwa angka penggunaan CPU dan jumlah pekerjaan yang benar-benar bisa diproses tidak meningkat secara linear

Lingkungan dan metode pengujian

  • Eksperimen berbasis Ubuntu desktop + Ryzen 9 5900X (12 core/24 thread)
  • Precision Boost Overdrive (Turbo) diaktifkan
  • Mensimulasikan berbagai beban dengan stress-ng (1~24 worker, penggunaan 1~100%)
  • Metrik pengukuran: penggunaan CPU yang dilaporkan sistem dan jumlah komputasi nyata (Bogo ops)

Ringkasan hasil

  • Beban CPU umum: pada penggunaan 50%, throughput nyata 60~65%
  • Operasi integer 64-bit: pada penggunaan 50%, throughput nyata 65~85%
  • Operasi matriks (Matrix math): pada penggunaan 50%, throughput nyata 80~100%
    • Dalam praktiknya, walaupun worker tambahan tidak lagi berkontribusi pada performa, penggunaan CPU tetap naik

Analisis penyebab

  • Hyper-threading

    • Struktur 12 core fisik + 12 core logis
    • Hingga 12 worker dapat ditempatkan optimal pada core fisik, tetapi jika melebihi itu performa turun karena berbagi core logis
    • Khususnya pada operasi SIMD (operasi matriks), karena sumber daya dibagi, peningkatan performa tidak terjadi
  • Turbo boost

    • Pada beban rendah 4.9GHz → saat full load 4.3GHz, terjadi penurunan clock 15%
    • Hal ini mendistorsi rumus perhitungan penggunaan CPU (= busy cycles / total cycles)
      • Saat penyebut (jumlah total siklus) menurun, kenaikan penggunaan tampak lebih besar daripada kenaikan beban kerja nyata

Implikasi

  • Penggunaan CPU bukan indikator performa absolut
  • Saat menghitung kapasitas server dan memprediksi performa:
    • 1. Ukur throughput maksimum dengan benchmark
    • 2. Pantau throughput aktual secara real-time
    • 3. Bandingkan keduanya untuk menilai apakah sudah mendekati batas performa
  • Karena perbedaannya bisa besar tergantung arsitektur CPU (AMD vs Intel), efisiensi hyper-threading, dan cara kerja turbo, diperlukan analisis per prosesor

Kesimpulan

  • Penggunaan CPU pada dasarnya hanya rasio siklus sibuk, bukan cerminan akurat dari performa pemrosesan nyata
  • Dengan pemanfaatan yang efisien, bahkan pada "penggunaan 50%", sistem bisa saja sudah berada di 80~100% dari performa maksimum
  • Karena itu, pemantauan performa dan perencanaan sistem sebaiknya berfokus pada throughput beban kerja berbasis benchmark, bukan pada penggunaan CPU

Belum ada komentar.

Belum ada komentar.