Pemantauan performa jaringan merupakan komponen krusial untuk memastikan ketersediaan layanan dan pengalaman pengguna yang optimal. Speedtest CLI muncul sebagai solusi andal untuk mengukur kecepatan jaringan secara akurat langsung dari terminal Linux. Tool berbasis command-line ini cocok untuk administrator sistem, DevOps engineer, atau tim infrastruktur yang membutuhkan pengujian bandwidth yang mudah diintegrasikan ke dalam pipeline otomasi.

Dibandingkan tools GUI, Speedtest CLI menawarkan kelebihan seperti eksekusi ringan, kompatibilitas dengan script custom, dan kemampuan menghasilkan output terstruktur (JSON/CSV) untuk analisis lanjutan. Artikel ini akan memandu Anda melalui proses instalasi dan konfigurasi tool ini di sistem Linux.

Persiapan dan Instalasi Speedtest CLI di Linux

Syarat Sistem

Sebelum memulai instalasi, pastikan sistem Linux memenuhi persyaratan berikut:

  • Sistem operasi berbasis Debian/Ubuntu atau RHEL/CentOS/AlmaLinux (versi 64-bit).
  • Akses sudo atau hak akses root untuk menginstal paket.
  • Koneksi internet aktif untuk mengunduh dependensi.
  • Tools dasar seperti wget, curl, atau gnupg sudah terinstal (untuk metode instalasi via script).

Untuk memverifikasi ketersediaan tools tersebut, jalankan:

which wget curl   # Cek apakah command tersedia

Jika tools belum terinstal, gunakan command sesuai package manager:

# Debian/Ubuntu
sudo apt update && sudo apt install -y wget curl gnupg

# RHEL-based
sudo dnf install -y wget curl gnupg2

Metode Instalasi

Instalasi via Ookla Script Resmi

Metode ini direkomendasikan untuk instalasi standar:

# Unduh dan jalankan instalasi resmi
curl -s https://install.speedtest.net/app/cli/install.deb.sh | sudo bash

# Update repository (Debian/Ubuntu)
sudo apt update

# Instal paket speedtest
sudo apt install -y speedtest

Instalasi via Package Manager

Untuk RHEL-based systems:

# Tambahkan repository Ookla
curl -s https://install.speedtest.net/app/cli/install.rpm.sh | sudo bash

# Instal paket
sudo dnf install -y speedtest

Verifikasi Instalasi

Pastikan Speedtest CLI berjalan dengan perintah:

speedtest --version

Output yang diharapkan:

Speedtest by Ookla 1.2.0.0

Catatan

  • Instalasi via script resmi memastikan Anda mendapatkan versi terbaru.
  • Jika terjadi error “Permission denied”, pastikan eksekusi script dengan sudo.
  • Untuk sistem tanpa akses internet, gunakan paket offline yang tersedia di website Ookla.
Baca Juga:   Apa Itu FreeBSD? Fitur, Versi dan Kelebihannya!

Menjalankan dan Menginterpretasi Hasil Tes

Perintah Dasar Speedtest CLI

Setelah proses instalasi selesai, Anda dapat memulai pengujian jaringan dasar dengan menjalankan perintah berikut di terminal:

speedtest  

Secara default, tool akan:

  1. Mendeteksi server terdekat secara otomatis berdasarkan lokasi geografis.
  2. Melakukan tes latency (ping), kecepatan unduh (download), dan unggah (upload).
  3. Menampilkan hasil dalam format human-readable.

Untuk output yang lebih ringkas, gunakan opsi --simple:

speedtest --simple  

Contoh output:

Ping: 12.345 ms  
Download: 567.89 Mbit/s  
Upload: 123.45 Mbit/s  
  • Ping: Mengukur latensi jaringan (waktu respons server). Nilai di bawah 50 ms dianggap ideal untuk aplikasi real-time.
  • Download Speed: Kecepatan unduh data dari server ke client.
  • Upload Speed: Kecepatan unggah data dari client ke server.

Catatan Penting:

  • Hasil tes dipengaruhi oleh lokasi server. Speedtest CLI secara default memilih server berdasarkan latensi terendah.
  • Hindari menjalankan tes saat ada aktivitas jaringan berat (misal: backup data besar) untuk menghindari false reading.

Parameter Lanjutan untuk Use Case Spesifik

Pemilihan Server Manual

Untuk memilih server tertentu (misal: server internal perusahaan), gunakan --server-id:

# Tampilkan daftar server tersedia  
speedtest --servers  

# Jalankan tes ke server spesifik (contoh ID: 12345)  
speedtest --server-id=12345  

Output Terstruktur (JSON/CSV)

Gunakan opsi --format=json atau --format=csv untuk integrasi dengan tool monitoring:

speedtest --format=json --progress=no  

Contoh output JSON snippet:

{  
  "ping": {"latency": 14.7},  
  "download": {"bandwidth": 72345678},  
  "upload": {"bandwidth": 12345678},  
  "server": {"name": "Jakarta Data Center"}  
}  
  • Bandwidth diukur dalam bytes per detik. Konversi ke Mbps: (nilai bandwidth × 8) / 1,000,000.

Mode Non-Interaktif untuk Automation

Tambahkan flag --progress=no untuk menghilangkan progress bar, cocok untuk eksekusi via cron job atau script:

speedtest --progress=no --format=json > speedtest-log-$(date +\%F).json  

Menyimpan Hasil ke File

Redirect output langsung ke file untuk dokumentasi:

speedtest --simple > ~/network-report-$(date +\%F).txt  

Tips:

  • Jadwalkan tes berkala dengan cron job (misal: setiap 1 jam) untuk memantau performa jaringan 24/7.
  • Gunakan --accept-license dan --accept-gdpr di environment production untuk menghindari prompt interaktif.
Baca Juga:   Social Engineering: Definisi, Jenis & Cara Mencegahnya (Lengkap)

Poin Troubleshooting:

  • Jika muncul error “No servers defined”, pastikan koneksi internet aktif dan tidak ada pemblokiran ke speedtest.net.
  • Untuk tes di belakang proxy, tambahkan parameter --proxy=http://[user:password@]proxyhost:port.

Analisis Teknis dan Integrasi Dasar

Interpretasi Metrics Jaringan

Hasil tes Speedtest CLI memberikan tiga metrik kunci: latensikecepatan unduh, dan kecepatan unggah. Berikut panduan interpretasinya dalam konteks teknis:

  1. Latensi (Ping)
    • Nilai di bawah 50 ms: Ideal untuk aplikasi real-time (VoIP, video conference, gaming).
    • Nilai 50–100 ms: Masih diterima untuk browsing umum atau streaming, tetapi mungkin menyebabkan lag pada aplikasi kritikal.
    • Nilai di atas 150 ms: Indikasi masalah jaringan serius (misal: routing tidak optimal, kongesti jaringan).
  2. Download/Upload Speed
    • Bandwidth harus mendekati 80–95% dari kapasitas paket internet. Jika jauh di bawah, cek:
      • Throttling oleh ISP.
      • Interferensi fisik (kabel rusak, WiFi overcrowded).
      • Limitasi pada router atau firewall.
  3. Jitter & Packet Loss
    Meski tidak ditampilkan di output dasar, Anda bisa mengukur jitter (variasi latensi) dan packet loss dengan tes berulang:for i in {1..10}; do speedtest --simple | grep "Ping" >> ping-stats.txt; done Analisis file ping-stats.txt untuk menghitung deviasi latensi menggunakan tools seperti awk:awk '{print $2}' ping-stats.txt | awk '{sum+=$1} END {print "Avg:", sum/NR, "ms"}'

Faktor yang Mempengaruhi Hasil Tes

  • Lokasi Server: Server yang jauh secara geografis cenderung memberi latensi lebih tinggi.
  • Workload Server: Server Speedtest yang sibuk mungkin memberikan hasil download/upload lebih rendah.
  • Kondisi Jaringan Lokal: Penggunaan bandwidth oleh aplikasi lain selama tes.

Integrasi dengan Workflow Monitoring

Scheduling Tes Berkala dengan Cron

Buat cron job untuk menjalankan tes setiap jam dan menyimpan hasil ke log file:

# Buka crontab editor  
crontab -e  

# Tambahkan baris berikut (tes setiap jam ke file JSON)  
0 * * * * /usr/bin/speedtest --format=json --progress=no >> /var/log/speedtest-hourly.log  

Parsing Data untuk Reporting

Gunakan script Python sederhana untuk ekstrak metrik dari log JSON:

import json

with open('/var/log/speedtest-hourly.log', 'r') as f:  
    for line in f:  
        data = json.loads(line)  
        download = round((data['download']['bandwidth'] * 8) / 10**6, 2)  # Konversi ke Mbps  
        upload = round((data['upload']['bandwidth'] * 8) / 10**6, 2)  
        print(f"{data['timestamp']} | Download: {download} Mbps | Upload: {upload} Mbps")  

Integrasi dengan Tools Monitoring

  • Grafana: Gunakan plugin JSON/CSV datasource untuk visualisasi trend bandwidth.
  • Prometheus: Export hasil tes ke format Prometheus menggunakan script custom, lalu scrape via Node Exporter.
  • ELK Stack: Kirim log JSON ke Elasticsearch untuk analisis historis dan alerting.
Baca Juga:   Flowise AI: Platform Terbaik untuk Membangun Aplikasi LLM dengan Mudah

Contoh Use Case: Bandwidth Utilization Alert

Bash script untuk memicu email alert jika download speed di bawah 100 Mbps:

#!/bin/bash  
speedtest --simple > temp.txt  
download_speed=$(grep "Download" temp.txt | awk '{print $2}')  

if (( $(echo "$download_speed < 100" | bc -l) )); then  
    echo "Peringatan! Kecepatan unduh hanya $download_speed Mbps" | mail -s "Bandwidth Alert" [email protected]  
fi  

Tips:

  • Rotasi Log: Batasi ukuran log file dengan logrotate untuk hindari kehabisan disk space.
  • Permission Management: Pastikan cron job dan script memiliki izin eksekusi (chmod +x).

Kesimpulan

Dengan mengintegrasikan Speedtest CLI ke dalam sistem monitoring, Anda dapat mengidentifikasi anomaly jaringan secara proaktif, memvalidasi SLA dari ISP, dan mengoptimalkan alokasi bandwidth. Tools ini menjadi fondasi penting untuk membangun jaringan yang resilient dan berkinerja tinggi.

Avatar for Thatit Argadahana

About Author

Thatit Argadahana

Digital Marketing Specialist at Nevacloud. A night owl who eats business books for dinner. An AI enthusiast whose aim is to ease every job with a single GPT. Loves to share Nevacloud's how-tos and basic knowledge.