Bir sunucuda birden çok servis aynı anda çalışıyorsa ve bu servisler sürekli aktif durumdaysa, CPU’nun yük durumu kritik bir rol oynamaya başlar. Özellikle video işleme, veri tabanı işlemleri ve karmaşık kod yapısına sahip uygulamalarda işlemci kullanımı artarak performans düşüşlerine neden olabilir. Uzun süreli bu yoğunluk, daha karmaşık problemlerin ortaya çıkmasına yol açabilir. Bu yazımızda Linux sunucularda CPU verimliliğini artırmak için atılabilecek adımları detaylı şekilde inceleyeceğiz.
Zayıf Kodlanmış Uygulamalar
İşlemciye aşırı yük bindiren durumların başında optimize edilmemiş uygulamalar gelir. Sonsuz döngüler, optimize edilmemiş veri sorguları veya bellekle ilgili hatalar, CPU’yu gereksiz yere meşgul edebilir. PHP ya da Python gibi dillerle yazılmış projelerde, yapılandırma hataları veya yüksek eş zamanlı kullanıcı işlemleri bu yüklenmeyi daha da artırabilir.
WordPress Gibi CMS’lerde Kod Kalitesi
CMS sistemlerinde kullanılan düşük kaliteli tema ve eklentiler işlemcinin gereksiz çalışmasına sebep olur. Ziyaretçi trafiği arttığında, bu durum çok daha belirgin hale gelir. Ayrıca doğru yapılandırılmamış bir önbellekleme sistemi, her istek için tüm işlemlerin baştan yapılmasına neden olur. Bu tür durumlarda LiteSpeed Cache gibi önbellekleme sistemlerinden yararlanmak faydalı olacaktır.
Zararlı Yazılım Etkileri ve Saldırılar
Kötü amaçlı yazılımlar, özellikle kripto para madenciliği yapan türler, CPU kaynaklarını gizlice kullanabilir. Ayrıca sunuculara yönlendirilen DDoS atakları ve kaba kuvvet girişimleri işlemcinin sürekli olarak yüksek kullanımda kalmasına neden olabilir.
Arka Plan İşlemleri ve Sistemsel Yükler
Bazı durumlarda sistemin planlı görevleri de işlemci üzerinde yük oluşturabilir. Otomatik yedekleme işlemleri, zararlı yazılım taramaları ve güncellemeler işlemci kaynaklarını geçici süreliğine zorlayabilir. Bu gibi senaryolar, özellikle cPanel yüklü AlmaLinux sistemlerinde daha yaygın olarak gözlemlenir.
Gerçek Zamanlı CPU Kullanımı İzleme Araçları
Hatalı çalışan bir uygulama, en güçlü işlemcileri bile ciddi performans sorunlarına sürükleyebilir. CPU kullanımındaki anormallikleri tespit etmek için grafik arayüzlü sistem monitörleri veya doğrudan terminal araçları kullanılabilir. Özellikle SSH üzerinden erişilen sunucularda, terminal tabanlı araçlar çok daha işlevseldir.
‘top’ Komutuyla CPU Kullanımını
top komutu, Linux sistemlerde CPU, bellek ve işlem aktivitelerini gerçek zamanlı olarak izlemek için kullanılan temel araçlardan biridir.
top

Varsayılan olarak top ekranı her 3 saniyede bir yenilenir. Yük ortalamaları, görev sayısı ve CPU durumu gibi temel sistem bilgilerini gösterir. Kullanıcılar, P ile CPU’ya, M ile belleğe göre sıralama yapabilir, k tuşuyla işlemleri sonlandırabilir.
mpstat Komutuyla CPU Kullanımını İzleme
mpstat komutu, sysstat paketine ait bir araçtır ve işlemci başına detaylı CPU kullanım istatistikleri sağlar. Kullanıcı süresi, sistem süresi, boşta kalma oranı ve G/Ç bekleme süresi gibi verileri gösterir. Çok çekirdekli sistemlerde çekirdek bazlı analiz için idealdir.
mpstat -P ALL 2 5

sar Komutuyla CPU Kullanım Geçmişini İzleme
sar komutu, sysstat paketinin bir parçası olup CPU kullanım verilerini hem anlık hem de geçmişe dönük olarak görüntülemenizi sağlar. Sistem performansını zaman içinde analiz etmek isteyen yöneticiler için son derece faydalıdır.

Belirli aralıklarla veri toplamak için örnek: Bu komut, her 2 saniyede bir CPU istatistiklerini toplar ve toplamda 5 kez tekrarlar. Özellikle sistemdeki performans dalgalanmalarını takip etmek ve geçmiş verilerle karşılaştırma yapmak için idealdir.
sar -u 2 5
iostat Komutuyla CPU ve G/Ç Kullanımını İzleme
iostat komutu, hem CPU kullanımını hem de disk aygıtları ve bölümler için giriş/çıkış istatistiklerini gösterir. Özellikle G/Ç performansını analiz ederken CPU üzerindeki etkileri de değerlendirmek isteyenler için idealdir.
CPU kullanımını görmek için:
iostat

vmstat Komutuyla CPU Kullanımını İzleme
vmstat komutu; CPU, bellek, takas ve G/Ç istatistiklerini özet biçimde sunarak sistemin genel durumunu değerlendirmenizi sağlar. Özellikle bellek darboğazları ve takas kullanımının CPU performansına etkisini analiz etmek için kullanılır.
Her 2 sn bir çalıştırmak için aşağıdaki komutu kullanabilirsiniz.
vmstat 2

cpulimit Aracıyla Linux’ta CPU Kullanımı Nasıl Sınırlandırılır?
cpulimit, belirli bir sürecin (PID) CPU kullanım yüzdesini sınırlandırmanıza olanak tanır. cputool gibi alternatiflerine kıyasla daha fazla kontrol seçeneği sunar; ancak sistem yükünü izlemez, sadece hedef sürecin CPU tüketimini sınırlamaya odaklanır.
Ubuntu/Debian sistemlerde kurulum için;
sudo apt install cpulimit
RHEL/CentOS/Fedora sistemlerde önce EPEL deposunu etkinleştirme
sudo yum install epel-release
sudo yum install cpulimit
Aşağıda, bu aracı kullanırken işinize yarayacak temel seçenekleri bulabilirsiniz:
| Seçenek | Açıklama |
|---|---|
--pid, -p | Sınırlandırılacak sürecin PID’si |
--limit, -l | CPU kullanım limiti (%) |
--background, -b | cpulimit‘i arka planda çalıştırır |
--cpu, -c | Çekirdek sayısını belirtir (varsayılan: otomatik) |
--kill, -k | Limit aşılırsa işlemi sonlandırır |
--signal, -s | Farklı sinyaller göndererek işlemi durdurma |
--lazy, -z | İşlem kaybolursa otomatik çıkış yapar |
Prometheus ve Grafana ile Gelişmiş CPU İzleme
Geleneksel komut satırı araçları (top, htop, sar vb.), sistem kaynak kullanımını anlık olarak izlemenizi sağlar. Ancak bu araçlar uzun vadeli eğilimleri analiz etmek, geçmiş verileri saklamak ya da özel bildirimler oluşturmak konusunda sınırlıdır. İşte tam bu noktada Prometheus ve Grafana entegrasyonu devreye girer.
Prometheus, sistem metriklerini zaman serisi olarak toplayan açık kaynaklı güçlü bir izleme aracıdır. Grafana ise bu verileri görselleştirerek anlamlı grafiklere ve panellere dönüştürmenizi sağlar. Özellikle CPU kullanım trendlerini izlemek, ani yüklenmeleri tespit etmek ve belirli eşiklerin üzerinde işlemci tüketimi gerçekleştiğinde otomatik olarak uyarı almak isteyen sistem yöneticileri için bu ikili vazgeçilmezdir.
Node Exporter Kurulumu
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz
tar -xvzf node_exporter*.tar.gz
./node_exporter
Prometheus Kurulumu ve Yapılandırma
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
Grafana Kurulumu ve Dashboard Oluşturma
sudo apt install grafana
sudo systemctl enable --now grafana-server
İzleme ve alarm altyapınız artık temel düzeyde hazır. Bu yapı sayesinde CPU kullanımını sadece anlık değil, geçmişe dönük olarak da takip edebilir, belirlediğiniz eşiklerde otomatik uyarılar alarak sistem performansını proaktif şekilde yönetebilirsiniz.
Daha gelişmiş paneller oluşturmak, birden fazla sunucuyu izlemek istiyorsanız, adım adım ekran görüntüleriyle hazırladığımız detaylı kurulum rehberimize göz atmanızı öneririz.
👉 Ubuntu Server Monitoring için Prometheus ve Grafana