Acil servisin resüsitasyon odasında kardiyak monitörün tiz alarmı çaldığında ekrandaki ritme bakarsınız: Ventriküler Taşikardi (V-Tach). Kalp dakikada 240 vuruyla çılgınca kasılmaktadır. Dışarıdan bakan bir tıp öğrencisi "Kalp ne kadar hızlı çalışıyor, ne kadar dinamik!" diyebilir. Oysa acil tıp uzmanı durumun vahametini hemen anlar: Kalbin odacıklarının kanla dolması için gereken gevşeme fazı (diyastol) tamamen ortadan kalkmıştır. Ventriküller içine kan dolmadan kasılıp boşluğa yumruk atmaktadır; kardiyak debi sıfırlanmış, beyin perfüzyonu durmuş ve hasta bilincini kaybetmiştir. Kalbi durduran şey hareketsizlik değil, dinlenmeye fırsat tanımayan şuursuz bir aşırı uyarılmadır.

Web barındırma dünyasının paylaşımlı (shared) sunucu katmanlarında da sistem yöneticilerinin monitörlerini kırmızıya boyayan tam olarak bu ventriküler taşikardi tablosudur. Yıllık maliyeti bir akşam yemeği menüsünü geçmeyen standart bir cPanel/DirectAdmin paylaşımlı hosting hesabı satın alan bir kullanıcının, kontrol panelindeki "Zamanlanmış Görevler" (Cron Jobs) sekmesini keşfettiği an başlar trajedi. Kullanıcı zanneder ki o 10 dolarlık paket, kendisine tahsis edilmiş bir süper bilgisayar kümesidir.

While(true) Hilesi ve Process Tablosunun Boğulması

Linux crontab standardında en küçük zaman aralığı 1 dakikadır (* * * * *). Ancak modern dünyanın "anlık veri" ihtirası, 1 dakikalık bekleme süresini bile bünyesine sindiremez. Kripto para borsasından arbitraj kovalayan, rakip e-ticaret sitelerinin XML stok listelerini sömürmeye çalışan veya Instagram botu koşturan dahi geliştiricimiz, Linux'un 1 dakikalık kuralını aşmak için o meşhur "cinliği" kodlar:

* * * * * /usr/bin/php /home/user/public_html/bot.php >/dev/null 2>&1

Scriptin içine girip baktığınızda ise bir mimari intihar manifestosuyla karşılaşırsınız:

<?php
set_time_limit(0);
ignore_user_abort(true);
 
while (true) {
    // Harici API'den 15 MB JSON indir ve parse et
    checkStockAndPrices();
    sleep(1); // Güya sunucuyu dinlendiriyor!
}

Bu kod parçası, sunucunun biyolojisine sokulmuş bir toksindir. İlk dakika cron tetiklenir; bir PHP process'i ayağa kalkar, belleğe oturur, cURL ile harici sunucuya bağlanır ve sonsuz döngüye girer. İkinci dakika crontab tetiklendiğinde, önceki işlem henüz ölmediği için ikinci bir PHP process'i doğar. Onuncu dakikada sunucu üzerinde aynı anda çalışan, her biri 128 MB RAM tüketen ve döngü içinde soket bekleyen 10 farklı zombi işlem oluşur.

Sistem yöneticisinin terminalinde htop açıldığında karşılaşılan tablo bir yoğun bakım krizidir. Sunucunun Load Average değeri 4.0 olması gerekirken 85.0'a fırlamıştır. CPU çekirdekleri context switching (bağlam değiştirme) yapmaktan gerçek hesaplamaları yapamaz hale gelmiştir. Sunucuda aynı fiziksel donanımı paylaşan diğer 300 masum kullanıcının küçük kurumsal siteleri, diş hekimi klinikleri, mahalle kasabının tanıtım sayfası "504 Gateway Timeout" veya "508 Resource Limit Reached" hatası vermeye başlar.

CloudLinux, LVE ve Sistem Yöneticisinin Neşteri

Eski nesil paylaşımlı sunucularda tek bir kullanıcının bu şuursuzluğu tüm işletim sistemini kernel panic eşiğine getirirdi. Neyse ki modern barındırma altyapıları, biyolojik bağışıklık sistemine benzer mekanizmalar geliştirdi. CloudLinux ve LVE (Lightweight Virtual Environment) teknolojisi, her kullanıcıyı adeta tecrit edilmiş bir steril odaya kapatır.

Kullanıcıya ayrılan işlemci gücü %100'lük tek bir çekirdek (%100 CPU), bellek miktarı 1 GB ve eşzamanlı işlem sayısı (nPROC) 20 ile sınırlandırılmıştır. Bahsettiğimiz scraper botu ikinci dakikadan itibaren sınırlarına toslar. Linux scheduler (CFS - Completely Fair Scheduler), işlemcinin o kullanıcıya ayrılan zaman dilimini kısar (CPU throttling). Scriptler yavaşlar, veritabanı bağlantıları askıda kalır ve nihayet sistem EP (Entry Processes) sınırına ulaştığı an yeni gelen ziyaretçileri kapıdan çevirir.

Fakat sistem yöneticisi logları incelerken sunucunun disk I/O operasyonlarının tıkandığını, /tmp dizininin PHP oturum dosyalarıyla çöplüğe döndüğünü gördüğünde tıp dilindeki "amputasyon" kararını verir. crontab -r -u kullanıcı komutu verilir; o zararlı zamanlanmış görev kökünden silinir, yetkisi chmod 000 ile mühürlenir ve çalışan tüm process'leri kill -9 ile itlaf edilir.

"Sitemin Fonksiyonunu Bozdunuz!" Çığlığı

Olayın teknik boyutu dakikalar içinde temizlenir; asıl yıpratıcı olan, psikolojik ve kurumsal boyuttur. Görevi silinen ve hesabı askıya alınan müşteriden destek paneline düşen ilk bildirim genellikle şu tondadır:

"Siz nasıl bir firmasınız? Dün gece saat 03:00'te sistemdeki bir dosyamı silmişsiniz! Bütün ticaretim durdu, API entegrasyonum çalışmıyor. Paramızla rezil oluyoruz, hemen sunucuyu eski haline getirin yoksa avukatıma talimat verdim!"

Destek mühendisi sabırla açıklama yapmaya çalışır: "Beyefendi, paylaşımlı sunucuda saniyede bir çalışan ve 400 process üreten bir döngü koşturamazsınız. Bu sunucuda sizinle birlikte 250 farklı web sitesi barınıyor. Sunucunun toplam işlemci gücünün %80'ini tek başınıza tükettiğiniz için müdahale edildi."

Müşterinin cevabı asla şaşmaz: "Bana ne diğer sitelerden! Ben bu hizmet için yıllık 240 TL ödedim. Kotam sınırsız yazıyordu, sınırsız demek her şeyi yapabilirim demektir!"

Paylaşımlı Kaynak Etiği ve Profesyonel Mimari

Bir apartman dairesi kiraladığınızda, o dairenin oturma odasına 50 tonluk bir sanayi pres makinesi kurup gece gündüz çalıştıramazsınız. "Kiramı ödüyorum, istediğimi yaparım" diyemezsiniz; çünkü o pres makinesinin yaydığı titreşim binanın kolonlarını çatlatır, alt kattaki komşunun avizesini düşürür.

Eğer iş modeliniz saniyede bir borsa kuru sorgulamak, binlerce sayfayı scrap etmek, kuyruktaki e-postaları dispatch etmek veya arka planda video render etmek üzerine kuruluysa, kullanacağınız yer paylaşımlı hosting değildir:

  1. VPS / VDS (Sanal Sunucu): Çekirdeği, RAM'i ve disk I/O operasyonları tamamen size ayrılmış sanal makineler.
  2. Kuyruk Yöneticileri (Message Brokers): RabbitMQ, Redis BullMQ gibi yapılarla işleri arka plana kontrollü dağıtmak.
  3. Serverless / Lambda: Sadece çalıştığı saniye kadar faturalandırılan, işi bitince hafızayı terk eden fonksiyonlar.
  4. Worker / Daemon Mimarisi: Web sunucusunun PHP fpm havuzunu kilitlemeden çalışan bağımsız Go, Python veya Node.js servisleri.

Ventriküler taşikardiye giren bir kalbe nasıl elektroşok cihazıyla (defibrilatör) akım verilip ritim zorla sıfırlanıyorsa, paylaşımlı sunucuda saniyede bir cron çalıştırmaya kalkan zihniyete de sistem yöneticisinin terminalinden pkill ve crontab -r şoku verilmesi kaçınılmaz bir doğa kanunudur. Bencilce kaynak tüketimi mühendislik değil, dijital görgüsüzlüktür.