Linux Sunucuda CPU Kullanımı Nasıl Kontrol Edilir? İşlemci Kullanımı Rehberi

serotrn · 28 Eylül 2026 · 1 görüntülenme · 0 cevap

Linux sunucuda CPU kullanımını kontrol etmek için en pratik yöntemlerden biri top komutudur. Bu komut işlemci kullanımını, çalışan process'leri, RAM durumunu ve sistem yükünü gerçek zamanlı olarak gösterir.


SSH ile sunucuya bağlandıktan sonra:

top

komutunu çalıştırabilirsiniz.

CPU sürekli yüksek görünüyorsa hangi process'in işlemciyi kullandığını bulmak gerekir. Node.js, PostgreSQL, Nginx veya başka bir servis yüksek CPU tüketebilir; ancak yüksek kullanım her zaman bir problem olduğu anlamına gelmez.

top komutu nasıl kullanılır?

Terminalde:

top

çalıştırıldığında sistemin anlık durumu görüntülenir.

Üst bölümde genellikle:

- Load average
- CPU kullanımı
- RAM kullanımı
- Swap
- Process sayısı
- Sistem çalışma süresi

gibi bilgiler bulunur.

Alt bölümde ise çalışan process'ler listelenir.

Buradaki %CPU sütunu hangi process'in işlemciyi ne kadar kullandığını anlamak için önemlidir.

CPU satırındaki değerler ne anlama gelir?

top çıktısında CPU kullanımında farklı kategoriler bulunabilir.

Bunlardan yaygın olanları:

us: Kullanıcı alanındaki uygulamaların CPU kullanımı.

sy: Kernel ve sistem işlemlerinin CPU kullanımı.

id: İşlemcinin boşta kaldığı süre.

wa: I/O işlemlerinin tamamlanmasının beklendiği süre.

Örneğin id değeri çok düşükse CPU yoğun şekilde kullanılıyor olabilir.

Ancak wa yüksekse sorun doğrudan işlemci gücünden ziyade disk veya başka I/O işlemleriyle ilişkili olabilir.

En fazla CPU kullanan process nasıl bulunur?

Şu komut kullanılabilir:

ps aux --sort=-%cpu | head

Bu komut yüksek CPU kullanan process'leri üst sıralarda gösterir.

Daha fazla kayıt görmek isterseniz:

ps aux --sort=-%cpu | head -20

kullanabilirsiniz.

Listede:

- Kullanıcı
- PID
- CPU yüzdesi
- RAM yüzdesi
- Process adı

gibi bilgiler görülebilir.

htop ile CPU kullanımı nasıl kontrol edilir?

Sunucuda htop kuruluysa:

htop

komutuyla daha görsel bir arayüz kullanabilirsiniz.

Ubuntu veya Debian tabanlı sistemlerde kurulum için:

sudo apt update

sudo apt install htop

kullanılabilir.

htop, her CPU çekirdeğinin kullanımını ayrı ayrı takip etmeyi kolaylaştırır.

Ayrıca process'leri CPU veya RAM kullanımına göre sıralayabilirsiniz.

CPU kullanımı %100 olması normal mi?

Duruma göre normal olabilir.

Örneğin:

- Yazılım derlenirken
- Büyük dosya sıkıştırılırken
- Yoğun veritabanı sorgusu çalışırken
- Çok sayıda istek işlenirken
- Yedek alınırken

CPU kısa süreli olarak %100 seviyesine ulaşabilir.

Sorun, kullanımın uzun süre yüksek kalması ve sistem performansını etkilemesidir.

Bu durumda hangi process'in kaynak tükettiği araştırılmalıdır.

Bir process neden %100'den fazla CPU kullanıyor?

Çok çekirdekli Linux sistemlerinde bazı izleme araçlarında bir process'in CPU kullanımı %100'ün üzerinde görünebilir.

Örneğin dört mantıksal CPU bulunan bir sistemde araç ve hesaplama yöntemine bağlı olarak bir process:

150%

veya:

250%

gibi değerler gösterebilir.

Bu, process'in birden fazla CPU kapasitesinden yararlanmasıyla ilişkili olabilir.

Bu nedenle CPU yüzdesini değerlendirirken sunucudaki mantıksal CPU sayısını da bilmek önemlidir.

Kontrol için:

nproc

kullanabilirsiniz.

Örneğin sonuç:

4

ise sistem dört kullanılabilir işlem birimi bildiriyor demektir.

Load Average nedir?

top veya uptime komutunda:

load average

değerleri bulunur.

Örneğin:

load average: 0.50, 0.80, 1.10

Bu değerler sırasıyla yaklaşık son:

- 1 dakika
- 5 dakika
- 15 dakika

içindeki sistem yükünü gösterir.

Linux load average yalnızca doğrudan CPU yüzdesi değildir; çalışmaya hazır veya bazı kesintisiz bekleme durumundaki görevleri de yansıtabilir.

Bu nedenle load average ile CPU yüzdesi aynı şey değildir.

Load Average kaç olmalı?

Tek başına sabit bir sayı bütün sunucular için geçerli değildir.

Örneğin 1 CPU'lu bir sunucu ile 16 CPU'lu bir sunucuda:

load average: 4.00

aynı anlama gelmez.

Önce:

nproc

ile CPU sayısını kontrol edin.

Load değeri uzun süre kullanılabilir CPU kapasitesinin üzerinde kalıyorsa sistemde darboğaz bulunup bulunmadığını araştırmak gerekir.

Ancak yalnızca load değerine bakarak kesin teşhis konulmamalıdır.

Node.js uygulaması yüksek CPU kullanıyorsa

PM2 kullanıyorsanız:

pm2 status

komutuyla uygulamaların CPU kullanımını görebilirsiniz.

Belirli bir uygulamanın detayları için:

pm2 describe uygulama-adi

kullanılabilir.

CPU sürekli yüksekse:

- Sonsuz döngü
- Yoğun hesaplama
- Çok fazla trafik
- Verimsiz kod
- Büyük JSON işlemleri
- Senkron ve CPU yoğun işlemler
- Çok sık çalışan görevler

araştırılabilir.

PM2 uygulamasını restart etmek çözüm mü?

Geçici olarak CPU kullanımını düşürebilir ancak problemin nedenini ortadan kaldırmayabilir.

Örneğin kod içerisinde sonsuz döngü varsa uygulama yeniden başladıktan sonra aynı problem tekrar ortaya çıkar.

Bu nedenle:

pm2 restart uygulama-adi

yalnızca geçici müdahale olarak değerlendirilmelidir.

Kalıcı çözüm için loglar ve uygulama davranışı incelenmelidir.

PM2 loglarını kontrol edin

CPU artışıyla birlikte uygulamada hata oluşuyorsa:

pm2 logs uygulama-adi

kullanabilirsiniz.

Aynı hatanın saniyede yüzlerce kez tekrarlandığını görüyorsanız uygulama hem CPU hem disk kullanımını artırabilir.

Bu durumda logu temizlemek yerine hatanın kaynağını düzeltmek gerekir.

PostgreSQL yüksek CPU kullanıyorsa

PostgreSQL process'lerinin yüksek CPU kullanması yoğun veya verimsiz sorgularla ilişkili olabilir.

Örneğin:

- Büyük tabloda uygun indeks olmaması
- Çok sayıda eş zamanlı sorgu
- Ağır sıralama işlemleri
- Karmaşık sorgular
- Uygulamanın gereksiz sorgu üretmesi

CPU kullanımını artırabilir.

PostgreSQL process'ini rastgele sonlandırmak yerine aktif sorgular ve veritabanı performansı araştırılmalıdır.

Nginx yüksek CPU kullanıyorsa

Nginx normal şartlarda oldukça verimli çalışabilir. Ancak yüksek trafik veya belirli sorunlar CPU kullanımını artırabilir.

Örneğin:

- Çok yüksek istek sayısı
- Bot trafiği
- Hatalı yönlendirme döngüleri
- Yoğun TLS işlemleri
- Büyük miktarda statik trafik
- Uygulama veya ağ kaynaklı olağan dışı durumlar

incelenebilir.

Nginx access ve error logları trafik davranışını anlamaya yardımcı olabilir.

CPU yüksek ama site neden yavaş olmayabilir?

Kısa süreli CPU artışları kullanıcıların fark edeceği bir probleme dönüşmeyebilir.

Örneğin birkaç saniyelik:

%100

kullanımın ardından sistem tekrar normale dönüyorsa bu olağan bir iş yükü olabilir.

Asıl dikkat edilmesi gereken:

- CPU'nun sürekli yüksek kalması
- Load average değerinin sürekli artması
- Yanıt sürelerinin yükselmesi
- Uygulamaların zaman aşımına uğraması
- SSH bağlantısının yavaşlaması

gibi belirtilerdir.

CPU düşük ama site neden yavaş olabilir?

Site yavaşlığının nedeni her zaman CPU değildir.

CPU %20 seviyesinde olsa bile:

- Disk I/O
- Veritabanı
- Ağ gecikmesi
- Harici API
- DNS
- Uygulama kilitlenmesi
- Yetersiz RAM ve yoğun swap

gibi nedenler performansı etkileyebilir.

Bu nedenle yalnızca CPU yüzdesine bakarak sunucunun sağlıklı olduğuna karar verilmemelidir.

I/O wait neden önemlidir?

top çıktısındaki wa değeri I/O bekleme durumunu anlamaya yardımcı olabilir.

wa sürekli yüksekse CPU işlemleri tamamlamak yerine depolama gibi I/O kaynaklarını bekliyor olabilir.

Bu durumda problem:

- Yavaş disk
- Çok yoğun disk işlemi
- Veritabanı I/O yükü
- Yedekleme
- Yoğun log yazımı

ile ilişkili olabilir.

CPU yükseltmek böyle bir problemi her zaman çözmez.

Tek bir CPU çekirdeği %100 olabilir mi?

Evet.

Bazı uygulamalar bütün çekirdekleri eşit şekilde kullanmaz.

Örneğin çok çekirdekli bir sunucuda:

- Bir çekirdek %100
- Diğerleri %10

seviyesinde olabilir.

Toplam CPU yüzdesi düşük görünse bile tek çekirdeğe bağımlı bir iş darboğaz yaşayabilir.

htop gibi araçlar çekirdek kullanımını ayrı ayrı görmeyi kolaylaştırır.

CPU kullanımını sürekli takip etmek neden önemli?

Sorun yaşandığı anda SSH ile bağlanıp top çalıştırmak her zaman yeterli olmayabilir.

Örneğin CPU gece 03.00'te birkaç dakika %100 oluyor ve sonra normale dönüyorsa siz kontrol ettiğinizde problem görünmeyebilir.

Bu tür durumlarda zaman içerisinde metrik toplayan bir monitoring sistemi kullanmak faydalıdır.

Takip edilebilecek metrikler:

- CPU kullanımı
- Load average
- RAM
- Swap
- Disk
- Disk I/O
- Ağ trafiği
- Uygulama yanıt süreleri

olabilir.

CPU yüksekse process'i hemen kill etmek doğru mu?

Genellikle önce process'in ne olduğunu anlamak gerekir.

Örneğin yüksek CPU kullanan process:

- PostgreSQL
- Nginx
- Backup işlemi
- Sistem servisi
- Node.js uygulaması

olabilir.

Process'i doğrudan öldürmek hizmet kesintisine veya veri kaybına neden olabilir.

Önce PID ve process bilgilerini kontrol edin.

Örneğin:

ps -p PID -o pid,ppid,user,%cpu,%mem,etime,cmd

komutu belirli bir process hakkında ayrıntılı bilgi gösterebilir.

CPU kullanımında ani artış varsa neler kontrol edilmeli?

Şu sıra kullanılabilir:

1. top ile genel duruma bakın.
2. nproc ile CPU sayısını öğrenin.
3. Load average değerlerini kontrol edin.
4. En fazla CPU kullanan process'i bulun.
5. Process'in hangi uygulamaya ait olduğunu belirleyin.
6. PM2 kullanıyorsanız uygulama durumunu kontrol edin.
7. Uygulama loglarını inceleyin.
8. Veritabanı yükünü kontrol edin.
9. Nginx loglarında olağan dışı trafik olup olmadığına bakın.
10. CPU artışının sürekli mi geçici mi olduğunu belirleyin.

Linux CPU kontrolü için kullanışlı komutlar

Gerçek zamanlı sistem takibi:

top

Daha görsel takip:

htop

CPU sayısı:

nproc

Sistem yükü:

uptime

En yüksek CPU kullanan process'ler:

ps aux --sort=-%cpu | head

Belirli process'i incelemek:

ps -p PID -o pid,ppid,user,%cpu,%mem,etime,cmd

PM2 uygulamaları:

pm2 status

Sık yapılan hatalar

CPU problemi araştırılırken şu hatalardan kaçınılmalıdır:

- Her %100 kullanımını arıza sanmak
- CPU çekirdek sayısını hesaba katmamak
- Load average ile CPU yüzdesini aynı şey sanmak
- Yüksek I/O wait değerini görmezden gelmek
- Process'i ne olduğunu bilmeden kill etmek
- PM2 uygulamasını sürekli restart ederek asıl problemi gizlemek
- Veritabanı sorgularını incelememek
- Bot veya anormal trafik ihtimalini kontrol etmemek
- Tek seferlik ölçüme bakarak karar vermek

Özetle, Linux sunucuda CPU kullanımını kontrol etmek için top, htop ve ps komutları kullanılabilir. Ancak yüksek CPU gördüğünüzde yalnızca yüzdeye odaklanmak yerine CPU sayısını, load average değerini, I/O wait durumunu ve kaynak tüketen process'i birlikte değerlendirmek gerekir.

Kalıcı çözüm için en önemli adım hangi process'in CPU tükettiğini ve bu tüketimin neden oluştuğunu bulmaktır.