Takip et

VPS’inizin Sessiz Katili: OOM Killer ve Sanal Sunucu Maceram

Bir web sitesi veya uygulamanızı internete taşımak istediğinizde, genellikle ilk aklımıza gelen çözümlerden biri Sanal Özel Sunucu (VPS) kiralamak olur.

VPS’inizin Sessiz Katili: OOM Killer ve Sanal Sunucu Maceram

Bir web sitesi veya uygulamanızı internete taşımak istediğinizde, genellikle ilk aklımıza gelen çözümlerden biri Sanal Özel Sunucu (VPS) kiralamak olur. Düşük maliyetleri ve esneklikleri sayesinde birçok geliştirici ve küçük işletme için cazip bir seçenektirler. Ancak bu heyecan verici başlangıç, bazen sistemin nedenini anlamadığınız gizemli çökmelerle, yavaşlamalarla veya uygulamalarınızın aniden kapanmasıyla gölgelenebilir. Sanki sistemin içinde görünmez bir güç, en kritik anda uygulamalarınızı sessizce öldürüyormuş gibi hissedersiniz. İşte bu yazıda, benim de başıma gelen bu “sessiz ölümün” ardındaki gerçeği, yani Linux çekirdeğinin son çaresi olan OOM Killer’ı ve bu zorlu VPS maceramdan çıkardığım dersleri sizinle paylaşacağım.

Bir VPS Macerası Nasıl Başlar ve Neden Biter?

Her şey, kendi kişisel projelerimi barındırmak ve biraz da sistem yönetimi becerilerimi geliştirmek amacıyla uygun fiyatlı bir VPS edinmemle başladı. Hayallerim büyüktü: Kendi blogumu kuracak, küçük bir e-ticaret sitesi denemesi yapacak, hatta belki bir oyun sunucusu bile barındıracaktım. VPS’imi kurdum, işletim sistemi olarak tanıdık bir Linux dağıtımı seçtim, gerekli web sunucusu (Nginx), veritabanı (PostgreSQL) ve uygulama çalışma zamanı (Node.js) ortamlarını yapılandırdım. İlk başlarda her şey yolundaydı. Uygulamalarım sorunsuz çalışıyor, sitelerim hızlı açılıyordu. Kendimi adeta bir sistem yöneticisi gibi hissediyordum.

Ancak bu balayı dönemi çok uzun sürmedi. Bir süre sonra, özellikle aynı anda birkaç uygulamayı çalıştırdığımda veya sitelerime biraz daha fazla ziyaretçi geldiğinde, sistemde tuhaf davranışlar gözlemlemeye başladım. Web siteleri bazen yüklenmiyor, Node.js uygulamam aniden kapanıyor, hatta SSH bağlantım bile kopuyordu. Sunucuyu yeniden başlattığımda her şey normale dönüyor gibi görünse de, sorun kısa süre sonra tekrar nüksediyordu. İlk başta bunun bir yazılım hatası, belki de kötü yapılandırılmış bir Nginx ayarı olduğunu düşündüm. Log dosyalarını karıştırmaya başladım, ancak hiçbir yerde bariz bir hata mesajı göremiyordum. Uygulama logları sadece “kapanma” bilgisini veriyor, neden kapandığına dair hiçbir ipucu sunmuyordu. Bu durum, zamanla büyük bir hayal kırıklığına ve hatta öfkeye dönüştü. Neden sunucum bu kadar istikrarsızdı? Neyi yanlış yapıyordum? Bu soruların cevaplarını bulmak için derinlemesine bir araştırmaya giriştim ve sonunda, Linux dünyasının az bilinen ama hayati derecede önemli bir kahramanıyla (ya da bazı durumlarda, kötü adamıyla) tanıştım: OOM Killer.

VPS’ler, adından da anlaşılacağı gibi fiziksel bir sunucunun kaynaklarının sanallaştırılarak paylaştırılmasıyla oluşur. Bu, genellikle sınırlı miktarda RAM, CPU ve depolama alanı anlamına gelir. Başlangıçta bu kaynaklar yeterli gibi görünse de, uygulamanızın ihtiyaçları arttıkça veya beklenmedik bir bellek sızıntısı (memory leak) meydana geldiğinde, sunucunuzun belleği hızla tükenebilir. İşte tam bu noktada, Linux çekirdeği, sistemin tamamen donmasını veya kilitlenmesini önlemek için son çare olarak devreye girer. Bu durum, genellikle deneyimsiz kullanıcılar için büyük bir gizem perdesiyle örtülüdür ve sunucunun neden durmadan çöktüğünü anlamak, adeta bir dedektiflik hikayesine dönüşür. Benim için de durum buydu; sunucumun kaynak sınırlarını zorladığımı ve sistemin bu duruma nasıl tepki verdiğini anlamam gerekiyordu. Bu deneyim, bana sadece teknik bilgi değil, aynı zamanda sorun giderme ve sabır konusunda da çok şey öğretti.

OOM Killer Kimdir ve Neden Ortaya Çıkar?

Linux işletim sistemlerinde, sistemin kararlılığını sağlamak için tasarlanmış birçok mekanizma bulunur. Bu mekanizmalardan biri de “Out Of Memory Killer” veya kısaca OOM Killer’dır. Adından da anlaşılabileceği gibi, OOM Killer, sistem belleği (RAM) tamamen dolduğunda ve yeni bellek tahsis edilemediğinde devreye giren bir Linux çekirdeği özelliğidir. Temel amacı, sistemin tamamen kilitlenmesini ve kullanılamaz hale gelmesini engellemektir. Bellek tükendiğinde, çekirdek, sistem için en az önemli görünen süreçleri (process) sonlandırarak bellek boşaltmaya çalışır. Bu, tıpkı bir geminin batmak üzereyken yükünü denize atarak hafiflemeye çalışması gibidir; geminin tamamen batmasını engellemek için bazı kayıplar göze alınır.

Peki, OOM Killer neden ortaya çıkar? Genellikle bunun birkaç ana nedeni vardır:

  • Yetersiz Fiziksel Bellek (RAM): En yaygın nedendir. VPS’inizde çalışan uygulamaların toplam bellek ihtiyacı, tahsis edilen RAM miktarını aştığında OOM durumu ortaya çıkar. Özellikle düşük RAM’li (örneğin 512MB veya 1GB) VPS’lerde bu durum sıkça görülür.
  • Bellek Sızıntıları (Memory Leaks): Bir uygulama, ayrıldığı belleği kullanmayı bitirdikten sonra işletim sistemine geri vermediğinde bellek sızıntısı meydana gelir. Zamanla bu sızıntılar birikerek sistem belleğini tüketebilir. Özellikle uzun süre çalışan uygulamalarda veya hatalı kodlanmış yazılımlarda bu durumla karşılaşılabilir.
  • Yanlış Yapılandırma: Veritabanı sunucuları (MySQL, PostgreSQL), web sunucuları (Apache, Nginx) veya uygulama sunucuları (PHP-FPM, Node.js) gibi hizmetler, varsayılan olarak çok fazla bellek kullanacak şekilde yapılandırılmış olabilir. Özellikle yüksek trafik beklemeyen bir VPS için bu ayarlar aşırıya kaçabilir.
  • Yoğun Trafik veya İş Yükü: Bir web sitesine veya uygulamaya aniden gelen yoğun trafik, çok sayıda eşzamanlı bağlantı ve işlem gerektirebilir. Bu durum, normalde yeterli olan bellek kaynaklarının hızla tükenmesine yol açabilir.

OOM Killer, genellikle bir sistemin hayatta kalma mekanizması olarak görülse de, uygulamalarınızın beklenmedik bir şekilde kapanmasına neden olduğu için geliştiriciler ve sistem yöneticileri için baş ağrısı kaynağı olabilir. Bu durumun üstesinden gelmek için, sistemin bellek kullanımını anlamak ve OOM Killer’ın nasıl çalıştığını bilmek hayati önem taşır. Linux çekirdeği, bellek yetersizliği durumunda hangi sürecin “kurban” edileceğine karar verirken belirli bir algoritma kullanır. Bu algoritma, her sürece bir “OOM puanı” (OOM score) atar ve en yüksek puana sahip süreci sonlandırmaya meyillidir. Bu mekanizma, sistemin tamamen donmasını engellerken, aynı zamanda hangi uygulamanın “feda edildiğini” anlamak için logları dikkatle incelemeyi gerektirir. Benim VPS maceramda da, bu sessiz katilin kim olduğunu ve neden ortaya çıktığını anlamak, sorunu çözmenin ilk adımı oldu. Bellek (Memory), takas alanı (Swap Space) ve sanal bellek (Virtual Memory) gibi temel kavramları öğrenmek, bu mekanizmanın derinliklerine inmemi sağladı.

OOM Killer Kurbanlarını Nasıl Seçer?

OOM Killer’ın en ilginç ve bazen de en sinir bozucu yanı, hangi süreci sonlandıracağına nasıl karar verdiğidir. Bu karar, tamamen rastgele verilmez; Linux çekirdeği, her çalışan sürece bir “oom_score” atar. Bu puan, sürecin bellek tüketimi, çalışma süresi, ayrıcalıkları ve diğer faktörler göz önüne alınarak hesaplanır. Temel olarak, sistem için daha az kritik görünen ve daha fazla bellek tüketen süreçler, daha yüksek bir oom_score’a sahip olur ve dolayısıyla OOM Killer’ın hedefi olma olasılığı daha yüksektir.

Bir sürecin oom_score’unu etkileyen başlıca faktörler şunlardır:

  • Bellek Kullanımı: Bir süreç ne kadar çok bellek kullanıyorsa, oom_score’u o kadar yüksek olur.
  • Çalışma Süresi: Genellikle yeni başlayan süreçler, eski ve köklü süreçlere göre daha yüksek bir oom_score’a sahip olabilir.
  • Ayrıcalıklar: Root veya sistem süreçleri gibi kritik süreçlerin oom_score’u genellikle düşüktür, böylece sistemin temel işlevlerinin devam etmesi sağlanır.
  • oom_score_adj Değeri: Bu, sistem yöneticilerinin belirli süreçler için oom_score’u manuel olarak ayarlamasına olanak tanıyan bir parametredir. -1000 ile 1000 arasında bir değer alabilir. -1000, sürecin asla öldürülmemesi gerektiğini (ancak bu garantili değildir, sistem çok sıkışırsa yine de öldürülebilir) belirtirken, 1000, sürecin ilk hedef olması gerektiğini gösterir. Varsayılan değer genellikle 0’dır.

Bir sürecin oom_score’unu ve oom_score_adj değerini kontrol etmek oldukça kolaydır. Bunun için /proc dosya sistemini kullanırız. Örneğin, bir sürecin PID’sini (Process ID) biliyorsanız, aşağıdaki komutlarla ilgili değerleri görebilirsiniz:


# Bir sürecin PID'sini bulmak için (örneğin, Nginx)
pgrep nginx

# PID'si 12345 olan bir sürecin oom_score_adj değerini görmek için
cat /proc/12345/oom_score_adj

# PID'si 12345 olan bir sürecin oom_score değerini görmek için
cat /proc/12345/oom_score
  

Bu değerleri bilmek, hangi uygulamalarınızın OOM Killer tarafından hedef alınma riskinin daha yüksek olduğunu anlamanıza yardımcı olur. Örneğin, veritabanı sunucunuzun veya web sunucunuzun kritik olduğunu düşünüyorsanız, o süreçlerin oom_score_adj değerini düşürerek onları korumaya alabilirsiniz. Ancak bu, diğer süreçlerin daha kolay öldürüleceği anlamına gelir, bu yüzden dikkatli kullanılmalıdır. Benim VPS maceramda, özellikle Node.js uygulamamın sürekli öldürülmesinin nedenini anlamak için bu puanları kontrol etmek, sorunu teşhis etme sürecimde önemli bir adımdı. Genellikle en çok bellek tüketen uygulamamın, yani Node.js'in, en yüksek puana sahip olduğunu ve bu yüzden OOM Killer tarafından sürekli hedef alındığını fark ettim. Bu bilgi, sorunu çözmek için atacağım adımları belirlememde kritik rol oynadı.

VPS'inizde OOM Killer Saldırısını Nasıl Tespit Edersiniz?

OOM Killer, sisteminizde sessizce işini yapar ve genellikle doğrudan bir hata mesajı bırakmaz. Bu yüzden, sorunun OOM Killer kaynaklı olup olmadığını anlamak, biraz dedektiflik ve sistem loglarını dikkatle inceleme becerisi gerektirir. Benim VPS'imde yaşadığım gizemli çökmelerin arkasındaki gerçeği ortaya çıkarmak için attığım adımlar şunlardı:

1. Sistem Loglarını İnceleyin

Linux sistemlerinde, çekirdek mesajları ve genel sistem logları, OOM Killer aktivitesini gösteren en önemli ipuçlarını barındırır. Kontrol etmeniz gereken başlıca yerler:

  • dmesg Komutu: Çekirdek mesajlarını gösterir. OOM Killer'ın devreye girdiğini gösteren mesajları bulmak için genellikle dmesg | grep -i "oom" veya dmesg | grep -i "memory" komutlarını kullanırız. Bu komutlar, "Out of memory", "Killed process" gibi ifadeler içeren satırları filtreleyecektir.
  • syslog veya messages Dosyaları: Çoğu Linux dağıtımında, sistem genelindeki loglar /var/log/syslog (Debian/Ubuntu) veya /var/log/messages (CentOS/RHEL) altında bulunur. Bu dosyalarda da benzer anahtar kelimeler arayabilirsiniz: grep -i "oom" /var/log/syslog.
  • journalctl Komutu: systemd kullanan modern Linux dağıtımlarında (Ubuntu 16.04+, CentOS 7+), logları yönetmek için journalctl kullanılır. OOM Killer mesajlarını bulmak için journalctl -xb -p err | grep -i "oom" veya journalctl -k | grep -i "oom" gibi komutlar işinize yarayacaktır. -k parametresi sadece çekirdek mesajlarını gösterir.

Loglarda genellikle aşağıdaki gibi bir çıktı görürsünüz:


[12345.678901] Out of memory: Kill process 54321 (node) score 999 or sacrifice child
[12345.678902] Killed process 54321 (node) total-vm:1234567kB, anon-rss:987654kB, file-rss:0kB, shmem-rss:0kB
  

Bu mesajlar, hangi sürecin (örneğin, node) OOM Killer tarafından sonlandırıldığını, PID'sini ve o anki bellek kullanım bilgilerini açıkça gösterir. Benim durumumda, bu logları incelediğimde, sürekli olarak Node.js uygulamamın veya bazen de veritabanı sunucumun (PostgreSQL) öldürüldüğünü gördüm. Bu, sorunun kaynağını net bir şekilde işaret ediyordu.

2. Bellek Kullanımını İzleme Araçlarını Kullanın

Sorun anında veya düzenli olarak sistemin bellek kullanımını izlemek, OOM Killer'ı tetikleyen bellek tüketimi desenlerini anlamanıza yardımcı olur:

  • free -h: Sistemdeki toplam, kullanılan ve boş bellek miktarını, ayrıca takas alanı (swap) kullanımını gösterir. -h parametresi, çıktıyı insan tarafından okunabilir (örneğin GB, MB) hale getirir.
  • top ve htop: Çalışan süreçleri ve bunların CPU, bellek ve takas alanı kullanımlarını gerçek zamanlı olarak gösterir. top komutunda, bellek kullanımına göre sıralamak için M tuşuna basabilirsiniz. htop ise daha kullanıcı dostu ve renkli bir arayüze sahiptir. Hangi süreçlerin en çok belleği tükettiğini hızlıca görmenizi sağlar.
  • vmstat: Sanal bellek istatistiklerini raporlar. vmstat 1 komutu, her saniye güncellenen bir çıktı verir ve bellek, takas, I/O, sistem ve CPU aktivitesi hakkında bilgi sağlar. Özellikle swpd (kullanılan takas alanı) ve free (boş bellek) sütunlarını takip etmek önemlidir.

Bu araçlarla, sunucunuzun bellek kullanımının ne zaman kritik seviyelere ulaştığını ve hangi uygulamaların bu duruma yol açtığını gözlemleyebilirsiniz. Benim VPS'imde, htop kullanarak Node.js uygulamamın zaman zaman beklenenden çok daha fazla bellek tükettiğini ve bu tüketimin RAM limitine yaklaştığında diğer uygulamaların yavaşlamaya başladığını fark ettim. Bu gözlemler, loglardaki OOM Killer mesajlarıyla birleştiğinde, sorunun kaynağını ve çözüm yollarını belirlemem için sağlam bir temel oluşturdu. Bir WordPress sitesi barındıran başka bir senaryoda ise, bir eklentinin bellek sızıntısına yol açtığını ve bu durumun OOM Killer'ı tetiklediğini yine bu yöntemlerle tespit etmiştim. Bu tür durumlar, proaktif izlemenin ve log incelemesinin ne kadar kritik olduğunu bir kez daha kanıtlar niteliktedir.

OOM Killer ile Baş Etme Yöntemleri Nelerdir?

OOM Killer ile yüzleşmek zorunda kaldığınızda, paniğe kapılmak yerine, sorunu kökten çözmek için çeşitli stratejiler uygulayabilirsiniz. Benim VPS maceramda da, bu yöntemleri adım adım uygulayarak sunucumu daha kararlı hale getirmeyi başardım. İşte OOM Killer ile baş etme ve sisteminizi daha dirençli hale getirme yolları:

Uygulama Optimizasyonu

En etkili ve kalıcı çözümlerden biri, bellek tüketimini tetikleyen uygulamaların kendilerini optimize etmektir. Bu, sunucunun kaynaklarını artırmadan önce yapılması gereken ilk adımdır.

  • Kod Optimizasyonu: Uygulamanızın (örneğin, PHP, Node.js, Python, Java) kodunu gözden geçirin. Bellek sızıntılarına neden olabilecek hataları düzeltin. Büyük veri yapılarını daha verimli kullanın, gereksiz nesneleri veya değişkenleri zamanında bellekten temizleyin. Örneğin, Node.js'te büyük dizilerle çalışırken bellek referanslarını doğru yönetmek veya PHP'de döngü içinde büyük nesneler oluşturmaktan kaçınmak önemlidir.
  • Veritabanı Optimizasyonu: Eğer uygulamanız bir veritabanı kullanıyorsa, sorgularınızı optimize edin. Yavaş ve verimsiz sorgular, veritabanı sunucusunun (MySQL, PostgreSQL) ve dolayısıyla sistemin genel bellek kullanımını artırabilir. İndeksler (index) eklemek, sorguları yeniden yazmak ve gereksiz verileri çekmekten kaçınmak bu konuda yardımcı olacaktır.
  • Önbellekleme (Caching) Mekanizmaları: Uygulamanızda önbellekleme kullanın. Sık erişilen verileri veya sayfaları önbelleğe almak, veritabanına ve uygulama sunucusuna olan yükü azaltır, bu da bellek tüketimini düşürür. Redis, Memcached gibi bellek tabanlı önbellek sistemleri veya CDN'ler (İçerik Dağıtım Ağları) bu konuda oldukça faydalıdır.
  • Eşzamanlı Bağlantıları Sınırlama: Web sunucunuz (Nginx, Apache) veya uygulama sunucunuz (PHP-FPM, Node.js) için eşzamanlı bağlantı veya süreç sayısını sınırlayın. Her bağlantı veya süreç belirli bir miktar bellek tüketir. Aşırıya kaçan eşzamanlılık, bellek tükenmesine yol açabilir. Örneğin, PHP-FPM'de pm.max_children veya Nginx'te worker_processes gibi ayarları dikkatlice yapılandırın.

Sistem Konfigürasyonu

Uygulama düzeyinde optimizasyonlar yeterli olmadığında veya daha hızlı bir çözüm gerektiğinde, sistem düzeyinde bazı yapılandırmalar yapabilirsiniz.

  • Takas Alanı (Swap Space) Ekleme: Swap alanı, fiziksel RAM dolduğunda kullanılmak üzere diskin bir kısmını bellek olarak ayırmaktır. Bu, OOM Killer'ın anında devreye girmesini geciktirir ve sistemin tamamen donmasını engeller. Ancak disk tabanlı olduğu için RAM'den çok daha yavaştır ve performansı düşürebilir. Benim VPS'imde acil bir çözüm olarak 1GB'lık bir swap alanı eklemiştim. Swap alanı eklemek için aşağıdaki adımları takip edebilirsiniz:
    
    # 1GB boyutunda bir takas dosyası oluşturun
    sudo fallocate -l 1G /swapfile
    
    # Sadece root kullanıcısının erişebilmesi için izinleri ayarlayın
    sudo chmod 600 /swapfile
    
    # Takas alanını yapılandırın
    sudo mkswap /swapfile
    
    # Takas alanını etkinleştirin
    sudo swapon /swapfile
    
    # Yeniden başlatmada kalıcı olması için /etc/fstab dosyasına ekleyin
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    
    # Takas alanının başarıyla eklendiğini kontrol edin
    free -h
      

  • oom_score_adj Ayarlama: Kritik süreçlerinizin (örneğin, SSH sunucunuz veya veritabanınız) OOM Killer tarafından öldürülme olasılığını azaltmak için oom_score_adj değerini düşürebilirsiniz. Örneğin, MySQL sürecinin PID'sini bulup oom_score_adj değerini -1000'e ayarlamak için:
    
    # MySQL sürecinin PID'sini bulun (örneğin, mysqld)
    pidof mysqld
    
    # PID'si 12345 olan MySQL sürecinin oom_score_adj değerini -1000 olarak ayarlayın
    echo -1000 | sudo tee /proc/$(pidof mysqld)/oom_score_adj
      

    Bu, ilgili sürecin OOM Killer tarafından sonlandırılma önceliğini düşürür. Ancak unutmayın, bu diğer süreçlerin daha kolay öldürüleceği anlamına gelir.

  • Kaynak Limitleri (Ulimits, Cgroups): Daha ileri düzeyde, Linux'un ulimit komutu veya cgroups (control groups) özelliği ile süreçlere veya kullanıcı gruplarına bellek limitleri atayabilirsiniz. Bu, bir sürecin aşırı bellek tüketmesini baştan engeller. Ancak bu konfigürasyonlar daha karmaşık olabilir ve dikkatli bir şekilde yapılmalıdır.
  • Doğru VPS Planını Seçme: Bazen tüm optimizasyonlara rağmen mevcut VPS planınızın RAM'i yetersiz kalabilir. Bu durumda, daha fazla RAM'e sahip bir üst pakete geçmek en kesin çözümdür. Uzun vadede, uygulamanızın gerçek bellek ihtiyaçlarını anlamak ve buna uygun bir sunucu seçmek önemlidir.

Bu yöntemlerin kombinasyonu, benim VPS'imin istikrarsızlığını büyük ölçüde gidermeme yardımcı oldu. Özellikle swap alanı eklemek ve Node.js uygulamamdaki bellek sızıntısını tespit edip düzeltmek, OOM Killer saldırılarının sona ermesini sağladı. Her durum farklı olsa da, bu adımlar genellikle OOM Killer sorunlarıyla başa çıkmak için sağlam bir başlangıç noktası sunar.

Gerçek Dünya Senaryoları ve Benim Derslerim

OOM Killer ile yaşadığım mücadele, teorik bilgiden çok daha fazlasını öğreten gerçek bir deneyimdi. Başlangıçta sadece bir "sistem çökmesi" olarak gördüğüm olaylar, zamanla daha derinlemesine bir anlayışa dönüştü. İşte bu süreçte karşılaştığım bazı senaryolar ve onlardan çıkardığım dersler:

Senaryo 1: Node.js Uygulamamın Gizemli Ölümü

İlk VPS'imde, küçük bir REST API sunan bir Node.js uygulaması çalıştırıyordum. Uygulama, belirli bir API isteği aldığında büyük bir veri setini işleyip analiz ediyordu. Başlangıçta her şey yolundaydı, ancak birkaç kullanıcı aynı anda bu API'yi kullanmaya başladığında, Node.js süreci aniden kapanıyordu. Loglarda herhangi bir hata mesajı yoktu, sadece uygulamanın durduğu bilgisi vardı. dmesg komutuyla çekirdek loglarını incelediğimde, "Killed process (node)" mesajlarını gördüm. Bu, OOM Killer'ın iş başı yaptığını gösteriyordu.

  • Teşhis: Node.js uygulamam, büyük veri setlerini işlerken belleği verimli kullanmıyordu. Özellikle döngüler içinde oluşturulan geçici nesneler ve diziler, çöp toplayıcının (garbage collector) yetişemediği hızda bellek tüketiyordu.
  • Çözüm: Uygulama kodunu gözden geçirdim. Büyük veri setlerini işlerken akış (stream) tabanlı yaklaşımları kullanmaya başladım. Gerekli olmayan verileri bellekten daha erken temizlemek için kodumda optimizasyonlar yaptım. Ayrıca, Node.js'in varsayılan bellek limitlerini araştırdım ve daha verimli çalışması için bazı çalışma zamanı parametrelerini ayarladım.
  • Ders: Uygulama kodunun bellek kullanımını anlamak ve optimize etmek, sadece OOM Killer sorununu çözmekle kalmaz, aynı zamanda uygulamanın genel performansını da artırır. Geliştiricilerin, yazdıkları kodun sistem kaynaklarını nasıl etkilediğini derinlemesine anlamaları gerektiği çok önemli.

Senaryo 2: Yoğun Trafikte Çöken WordPress Sitesi

Başka bir VPS'te, bir müşterimin WordPress sitesini barındırıyordum. Site genellikle düşük trafiğe sahipti, ancak bir kampanya döneminde aniden yüksek sayıda ziyaretçi aldı. Bu yoğunlukla birlikte site yavaşlamaya başladı ve belirli aralıklarla tamamen erişilemez hale geldi. Yine

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.