Linux Sunucularda Yüksek CPU ve Load Average Sorunu Nasıl Çözülür?
Linux sistem yöneticilerinin en sık karşılaştığı performans sorunlarının başında, sunucunun aniden yanıt vermeyi kesmesine veya yavaşlamasına neden olan yüksek CPU ve Load Average (Yük Ortalaması) durumları gelir. Genellikle bu iki kavram birbiriyle karıştırılsa da, yüksek CPU doğrudan işlemcinin yoğunluğunu gösterirken; yüksek Load Average, işlemci, disk (I/O) veya network kuyruğunda bekleyen toplam süreç (process) sayısını ifade […]
Linux sistem yöneticilerinin en sık karşılaştığı performans sorunlarının başında, sunucunun aniden yanıt vermeyi kesmesine veya yavaşlamasına neden olan yüksek CPU ve Load Average (Yük Ortalaması) durumları gelir. Genellikle bu iki kavram birbiriyle karıştırılsa da, yüksek CPU doğrudan işlemcinin yoğunluğunu gösterirken; yüksek Load Average, işlemci, disk (I/O) veya network kuyruğunda bekleyen toplam süreç (process) sayısını ifade eder.
Bu rehberde, Linux sunucularda yükselen kaynak tüketimi krizlerini CLI araçlarıyla anlık olarak nasıl teşhis edeceğinizi, darboğazın kök nedenini bulmayı ve sistem servislerini optimize ederek sorunu çözmeyi öğreneceksiniz.
—
1. Load Average ve CPU İlişkisini Anlamak
Sorunu çözmeye başlamadan önce, sistemdeki darboğazın türünü doğru belirlemek gerekir. Sunucunuza SSH ile bağlandıktan sonra ilk durum tespiti için uptime veya top komutunu çalıştırın:
uptime
Çıktının sonunda yer alan load average: 12.50, 8.10, 4.25 gibi üç farklı değer sırasıyla son 1, 5 ve 15 dakikalık yük ortalamasını gösterir.
Kritik Kural: Eğer sunucunuzda toplam 4 çekirdek (CPU Core) varsa ve 1 dakikalık Load Average değeri 4’ün üzerindeyse (örneğin 12 ise), sunucunuz kapasitesinin 3 katı üzerinde yük altında demektir ve işlemler kuyrukta bekliyordur.
—
2. CLI Araçları ile Anlık Teşhis ve Hata Analizi
Adım 1: Gelişmiş Süreç Takibi (htop / top)
Sistemde en çok CPU tüketen süreçleri listelemek ve bunları ağaç yapısında görmek için htop (yoksa apt install htop veya yum install htop ile kurabilirsiniz) en etkili araçtır:
htop
Standart top komutunu kullanıyorsanız, süreçleri CPU tüketimine göre sıralamak için klavyeden P tuşuna, bellek tüketimine göre sıralamak için ise M tuşuna basabilirsiniz.
Adım 2: Disk I/O Darboğazı Kontrolü (iotop / iostat)
Bazen CPU tüketimi %10 gibi düşük bir seviyede olmasına rağmen Load Average değerinin çok yüksek olduğu görülür. Bu durumun arkasındaki en büyük şüpheli disk yazma/okuma (I/O) kuyruğudur. Süreçlerin diski ne kadar meşgul ettiğini görmek için:
# Disk I/O kullanan süreçleri anlık görün
iotop -o
# CPU'nun diski bekleme oranını (%iowait) kontrol edin
iostat -x 1 5
iostat veya top çıktısındaki %wa (iowait) değeri %10’un üzerindeyse, işlemciniz veri işleyemiyor, sadece diskin yanıt vermesini bekliyordur. Bu durum genellikle veritabanı (MySQL/PostgreSQL) sorgularının kilitlenmesinden veya yoğun log yazımından kaynaklanır.
—
3. Sık Karşılaşılan Sorunlar ve Kesin Çözüm Adımları
Senaryo A: Web Sunucu (Nginx / Apache) ve PHP-FPM Yoğunluğu
Ziyaretçi trafiğinin aniden artması, DDoS saldırıları veya optimize edilmemiş dinamik scriptler PHP-FPM havuzunun (pool) şişmesine ve tüm CPU çekirdeklerinin %100 olmasına yol açar.
Çözüm Adımları:
# Hangi PHP-FPM sürecinin ne kadar süredir çalıştığını bulun
ps aux | grep php-fpm
# Web sunucusuna gelen anlık istekleri (istek sayısını) inceleyin
netstat -anp | grep :80 | wc -l
Eğer anormal bir IP adresinden çok fazla istek geliyorsa, ilgili IP’yi iptables veya firewalld ile engelleyin. PHP-FPM konfigürasyon dosyanızda (www.conf) yer alan pm.max_children değerini sunucu RAM’ine göre optimize edin ve servisi yeniden başlatın:
systemctl restart php-fpm
Senaryo B: Veritabanı (MySQL / MariaDB) Kilitlenmeleri
İndeksleri doğru yapılandırılmamış (Slow Queries) veya kilitli kalmış tablolar, MySQL servisinin CPU’yu domine etmesine neden olur.
Çözüm Adımları:
MySQL CLI arayüzüne bağlanarak çalışan aktif ve yavaş sorguları tespit edin:
mysql -u root -p -e "SHOW FULL PROCESSLIST;"
Burada uzun süredir Query durumunda bekleyen ve CPU’yu yoran süreci (Process ID) tespit edip sonlandırabilirsiniz:
mysql -u root -p -e "KILL [PROCESS_ID];"
Uzun vadeli çözüm için /etc/mysql/my.cnf dosyasında slow_query_log özelliğini aktif ederek yavaş sorguları analiz edin ve optimize edin.
Senaryo C: Zombi (Defunct) ve Asılı Kalan Süreçlerin Temizlenmesi
Yazılımsal hatalar nedeniyle durdurulmuş ancak işletim sistemi üzerinden tamamen temizlenmemiş süreçler (Zombi süreçler) Load Average değerini yapay olarak yükseltir.
Çözüm Adımları:
# Sistemdeki zombi süreçleri listeleyin
ps axo stat,ppid,pid,comm | grep -w defunct
# Üst süreci (Parent Process) sonlandırarak temizleyin
kill -9 [PARENT_PID]
—
4. Kriz Anı Müdahale Kontrol Listesi (Cheat Sheet)
Sunucunun tamamen kilitlenmek üzere olduğu anlarda sırasıyla şu hızlı komut dizilimini uygulayarak sunucuyu nefes alabilir duruma getirebilirsiniz:
- Yüksek Tüketim Yapan Servisi Tespit Edin:
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head -n 10 - Süreci Geçici Olarak Askıya Alın (Kill Etmeden Önce Zaman Kazanmak İçin):
kill -STOP [PID](Bu komut süreci öldürmez, dondurur. Analiz bittiğinde
kill -CONT [PID]ile devam ettirebilirsiniz.) - Sorunlu Süreci Güvenli Şekilde Sonlandırın:
kill -15 [PID] - Yanıtsız Kalan Süreçleri Zorla Kapatın:
kill -9 [PID]
Sunucularda kalıcı performans kararlılığı sağlamak amacıyla, sistem kaynaklarını (CPU, RAM, Disk I/O) Prometheus, Grafana veya Zabbix gibi izleme araçlarıyla periyodik olarak takip etmek, kriz büyümeden müdahale etmenizi kolaylaştıracaktır.
Altyapınız için teklif alın
Bulut sunucu, kurumsal e-posta veya yönetilen hizmetler hakkında uzman ekibimiz size yardımcı olsun.
İlgili Yazılar
Neden Yönetilen Hizmet (Managed IT)? Sunucu Outsource Avantajları
Günümüz iş dünyasında dijital altyapıların kesintisiz, güvenli ve performanslı çalışması, şirketlerin rekabet gücünü doğrudan belirler.…
RBL (Real-time Blackhole List) Nedir? IP Kara Listeden Nasıl Çıkarılır?
Kurumsal e-posta iletişiminde karşılaşılan en can sıkıcı durumlardan biri, gönderilen e-postaların aniden karşı tarafa ulaşmaması veya…
Zimbra Destek Hizmeti | Kurumsal Zimbra Teknik Destek ve Yönetilen Zimbra | NETSE
Zimbra Destek Hizmeti: Kurumsal İşletmeler İçin Profesyonel Zimbra Destek Rehberi (2026) Kurumsal e-posta altyapıları, işletmelerin günlük…