Yükseltilen VPS Sunucumda Web Servisi (Apache/Nginx) Aniden Duruyor, Sebebi Ne Olabilir?

0

Yaklaşık bir ay önce, sitemdeki artan trafik yükünü karşılamak adına mevcut paylaşımlı hosting paketimden daha güçlü bir VPS sunucuya geçiş yaptım. Beklentim, performansın gözle görülür şekilde artması ve stabil bir çalışma ortamı sağlamasıydı. Ancak son birkaç haftadır, özellikle yoğun saatlerde web servisi (Apache ya da nginx, hangisi çalışıyorsa) aniden duruyor ve sitem tamamen erişilemez hale geliyor. SSH üzerinden kontrol ettiğimde servisin durduğunu görüyor ve manuel olarak yeniden başlatmak zorunda kalıyorum. Sunucuya tahsis edilen RAM ve CPU kaynakları yeterli görünse de, bu durum beni endişelendiriyor. Log kayıtlarını detaylıca inceledim; genellikle 'segmentation fault' veya 'out of memory' gibi doğrudan bir hata mesajı olmasa da, servisin beklenmedik bir şekilde sonlandığına dair girdiler mevcut. Kullandığım işletim sistemi AlmaLinux 9 ve panel olarak cPanel kullanıyorum. Acaba gözden kaçırdığım bir sunucu ayarı mı var, yoksa yük altındayken belirli bir uygulama ya da modül çakışma mı yaratıyor? Daha önce benzer bir durumla karşılaşan veya bu tür ani servis duraklamalarının kök nedenini belirleme konusunda tecrübesi olan birileri var mı? Özellikle CPU limiti aşıldı hatası alıyorum, bu ne anlama geliyor? (Kaynakta belirtildiği gibi) gibi bir durumla mı karşı karşıyayım, yoksa sorun daha derinlerde mi?

Cevaplar (1)

0

VPS sunucunuzda web servisinin, özellikle yoğun saatlerde, aniden durması ciddi bir stabilite sorunudur. Bu durum, sitenizin erişilebilirliğini doğrudan etkilediği için hızlıca çözülmesi gereken teknik bir vakadır.

Bu tür performans ve stabilite sorunları, genellikle sunucu yükseltmeleri sonrasında yanlış yapılandırma veya beklenenden farklı kaynak tüketimi senaryolarında ortaya çıkar. Ancak endişelenmeyin, bu durumun hem teknik hem de idari olarak çözüme kavuşturulabilecek net yolları mevcuttur.

Sorunun olası kaynağı, belirttiğiniz 'CPU limiti aşıldı' uyarısıyla birlikte değerlendirildiğinde, genellikle iki ana senaryoda yoğunlaşır: Birincisi, sunucuya tahsis edilen kaynakların (CPU, RAM, I/O) mevcut trafik ve uygulama yükü için Yetersiz kalması veya Yanlış yapılandırılmasıdır. İkincisi ise, web sunucusu (Apache/nginx) veya PHP-FPM gibi arka plan servislerinin, belirlenen limitlerin üzerinde kaynak tüketmeye çalışması sonucu işletim sistemi ya da hypervisor tarafından sonlandırılmasıdır. cPanel ve AlmaLinux 9 kombinasyonunda, özellikle CloudLinux kullanılıyorsa, LVE (Lightweight Virtual Environment) limitleri bu tür duraklamalara sıkça neden olabilir.

Adım Adım çözüm:

  1. Kapsamlı Log Analizi: Sadece Apache/Nginx hata loglarına değil, sistem loglarına da odaklanın.
    • /var/log/messages veya /var/log/syslog dosyalarını OOM Killer (Out Of Memory Killer) mesajları için kontrol edin.
    • CPanel'in kendi loglarını (örn. /usr/local/cpanel/logs/error_log) ve eğer kullanılıyorsa PHP-FPM loglarını inceleyin.
    • CloudLinux kullanılıyorsa, LVE loglarında (örn. /var/log/lve-stats/ altında) kaynak limit aşımı uyarılarını arayın.
      Grep -i 'killed process' /var/log/messages
      grep -i 'lve' /var/log/messages
      tail -f /var/log/apache2/error_log # veya /var/log/nginx/error.log
  2. Gerçek Zamanlı Kaynak İzleme: Sorun anında veya yoğunluk beklediğiniz zamanlarda sunucu kaynaklarını yakından izleyin.
    • Top, Htop, Free -h komutlarıyla CPU, RAM kullanımını ve çalışan prosesleri gözlemleyin.
    • Iostat veya Vmstat ile I/O performansını kontrol edin.
      Htop
      free -h
      iostat -x 1 10
  3. Web Sunucusu ve PHP Yapılandırma Optimizasyonu: Mevcut kaynaklara ve beklenen yüke göre web sunucunuzun ve PHP-FPM'in ayarlarını optimize edin.
    • Apache için: MaxRequestWorkers (eski adıyla MaxClients), KeepAliveTimeout değerlerini düşürerek daha az kaynakla daha fazla bağlantı yönetmeye çalışın.
    • Nginx için: Worker_processes ve Worker_connections değerlerini sunucu kaynaklarına uygun şekilde ayarlayın.
    • PHP-FPM için: Pm.max_children, Pm.start_servers, Pm.min_spare_servers, Pm.max_spare_servers değerlerini dengeli bir şekilde yapılandırın. Özellikle Memory_limit değerini uygulamanızın ihtiyacına göre ayarlayın, ancak aşırıya kaçmayın.
      # Örnek PHP-FPM havuz ayarı
      pm.max_children = 50
      pm.start_servers = 5
      pm.min_spare_servers = 5
      pm.max_spare_servers = 15
      pm.max_requests = 500 # Her 500 istekte bir PHP-FPM sürecini yeniden başlatır
  4. Uygulama ve Veritabanı Optimizasyonu: Web uygulamanızın ve veritabanınızın (MySQL/MariaDB) performansını gözden geçirin. Yavaş çalışan sorgular veya verimsiz kod parçaları, CPU ve RAM tüketimini artırarak servis duraklamalarına neden olabilir. Slow_query_log'u aktif ederek yavaş sorguları tespit edin.
  5. Sağlayıcı ile İletişim: Eğer 'CPU limiti aşıldı' uyarısı doğrudan hosting sağlayıcınızın paneli üzerinden geliyorsa, bu durum hypervisor seviyesinde uygulanan bir limit anlamına gelebilir. Mevcut paketinizin limitlerini ve bu limitlerin sitenizin gerçek yükü karşısındaki yeterliliğini sorgulamak için sağlayıcınızla iletişime geçin. Gerekirse daha yüksek kaynaklı bir pakete geçiş yapmayı değerlendirin.

Aklına Takılabilir:

  • veri kaybı yaşanır mı? Hayır, web servisinin durması genellikle veri kaybına yol açmaz, sadece sitenizin erişilemez olmasına neden olur.
  • Yeniden kurulum şart mı? Genellikle hayır. Doğru teşhis ve yapılandırma optimizasyonları ile sorun yeniden kurulum yapmadan çözülebilir.

Kullanıcılar