• 23-12-2015, 14:24:51
    #1
    Bir süredir internette yeterli kaynak olmaması nedeniyle optimizasyon konusunda farklı sayılabilecek bir takım çalışmalar ile uğraşıyorum.

    Mysql konusundaki çalışmalarım geçen haftalarda tamamlandı.

    Bir süredir Apache ile uğraşıyorum ve oldukça yol kat ettim.

    Amacım çalışmaz denen vps lerde yoğun siteleri host etmek ve bu hosting sırasında nginx, litespeed vs. vs. yazılımları ana sağlayıcı olarak kullanmamak. Yani Apache kullanımına devam ederek hosting sağlamak.

    Bunu yapmaktaki amacım, sunucu ayarları ile uğraşmayı pek sevmeyen veya bu konuda bilgisi olmayan arkadaşların da, uygun fiyatlı makinalar ile, minimum ayarları yaparak web sitelerine odaklanabilmeleri.

    Apache konusunda son bir sorun üzerine çalışıyorum. Çözmem vakit alabileceğinden ötürü buraya da yazmak istedim belki çözümü hızlandırabiliriz.

    Sorun Özeti:

    Apache kaç process e ayarlanırsa ayarlansın, normalde bir process in %MEM (memory yüzdesi) 3 ila 6 arasında iken, bir an oluyor ve tek bir process veya aynı anda 2-3 process %20-50 lerde RAM tüketimine başlıyor. Bu sırada diğer process ler düşük ram tüketimlerine devam ediyorlar.

    Tek process in veya sadece birkaç process in bu yoğun ram tüketimine sebep olan sizce nedir?

    Ya da process hakkında detaylı bilgiler toplayabilmek için bildiğiniz benim gözümden kaçan nasıl bir info, history, debug, log yöntemi vardır?

    Konu ile ilgili dönüş yaparsanız projeyi sonlandırıp ihtiyacı olan arkadaşlar için de Türkçe yayın yapmayı düşünüyorum.

    İyi çalışmalar dilerim.
  • 24-12-2015, 14:34:59
    #2
    Merhaba,
    RAM tüketimi kullandığınız MPM modülüne bağldır. Bu alan da 3 adet Apachenin ana moduler yapısı vardır.

    1. MPM_Prefork
    2. MPM_Worker
    3. MPM_Event

    MPM_Event, Worker ile aynıdır lakin Apache 2.4 de deneysel olarak ve daha stabil çalışması için biraz daha gelişmiş halidir.

    Bu çalışma modüllerinin yapıları talebe göre değişiyor. Bazıları Yüksek ram kullanımı ile hızı bazıları ise basit request işlemlerini karşılamakla yükümlendirilmişler.

    Daha önce forumda bir arkadaşın modüller ile ilgili bilgi istemişti ve bir yorum yapmıştım alıntı olarak ekliyorum.

    Konu Linki: https://www.r10.net/server-optimizasy...post1071063568

    Yabancı Döküman: http://serverfault.com/questions/383...che-mpm-to-use

    Daha düşük kaynak kullanımı için Apache Wiki Worker Açıklaması : https://httpd.apache.org/docs/2.2/tr/mod/worker.html

    Alıntı
    prefork.c ve worker.c Apachenin çalışma prensibidir. Bu prensipleri belirlemeniz için Apacheyi ilk kompile edilme aşamasında belirlenir lakin genel olarak ve tavsiye edilen olarak Prefork kullanılır. Diğer işleyiciler bir takip PHP moduler işleyicileri ile uyumlu çalışmaya biliyor.

    Prefork: Her bir istek için Apache altında Perchild isteği açar. Tek veya Çift işlemciler için uygundur. Fakat yüksek trafikli sitelerde RAM ve CPU kullanımı yüksektir. Çok fazla istek doğrultusunda Eğer MaxClient değeri artırılmazsa gelen istekler beklemeye alınır. (Tarayıcıda döner durur). MaxClient değeri artırılır ise RAM kullanımı daha da artar ve performans sorunlarına denen olabilir.
    Prefork genelde tüm PHP işleticileri ile çalışabilir, mod_php,lsphp,fcgid,php-fpm

    Worker: Her bir istek aktif açık olan servis üzerine yönetilir. Hızlı çalışır ve bellek kullanımı düşüktür. Lakin PHP yi işleyecek modul ile ilgili uyum sorunları ve olası diğer işlemlerle ilgili hata durumunda tüm Apache servisleri etkilenir.
    Worker genelde kısıtlı bir PHP ileticileri tarafından desteklenir. Hatırladığım kadarıyla PHP-FPM ile çalıştırmayı başarmıştım.
  • 24-12-2015, 19:46:27
    #3
    zoeken adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    RAM tüketimi kullandığınız MPM modülüne bağldır. Bu alan da 3 adet Apachenin ana moduler yapısı vardır.

    1. MPM_Prefork
    2. MPM_Worker
    3. MPM_Event

    MPM_Event, Worker ile aynıdır lakin Apache 2.4 de deneysel olarak ve daha stabil çalışması için biraz daha gelişmiş halidir.

    Bu çalışma modüllerinin yapıları talebe göre değişiyor. Bazıları Yüksek ram kullanımı ile hızı bazıları ise basit request işlemlerini karşılamakla yükümlendirilmişler.

    Daha önce forumda bir arkadaşın modüller ile ilgili bilgi istemişti ve bir yorum yapmıştım alıntı olarak ekliyorum.

    Konu Linki: https://www.r10.net/server-optimizasy...post1071063568

    Yabancı Döküman: http://serverfault.com/questions/383...che-mpm-to-use

    Daha düşük kaynak kullanımı için Apache Wiki Worker Açıklaması : https://httpd.apache.org/docs/2.2/tr/mod/worker.html
    Test amaçlı apache yi prefork dan worker a çevirdim.

    httpd.conf dan gereken ayarları minimum düzeye çektiğim halde, tüketilen ortalama ram miktarı prefork un oldukça üzerinde oldu.
  • 24-12-2015, 20:04:15
    #4
    cculha adlı üyeden alıntı: mesajı görüntüle
    Test amaçlı apache yi prefork dan worker a çevirdim.

    httpd.conf dan gereken ayarları minimum düzeye çektiğim halde, tüketilen ortalama ram miktarı prefork un oldukça üzerinde oldu.
    Apache versiyonu nedir?
  • 24-12-2015, 20:33:51
    #5
    zoeken adlı üyeden alıntı: mesajı görüntüle
    apache versiyonu nedir?
    2.2.15
  • 24-12-2015, 21:14:15
    #6
    cculha adlı üyeden alıntı: mesajı görüntüle
    2.2.15
    Kullandığınız PHP Yorumlayıcı nedir acaba? Benim daha önce ki yaptığım testlerde event ve worker daha az sistem kaynağı kullanıyordu. suphp ve php-fpm kullanıyordum. fastcgi de oran bir artıyordu.
  • 26-12-2015, 13:44:09
    #7
    zoeken adlı üyeden alıntı: mesajı görüntüle
    Kullandığınız PHP Yorumlayıcı nedir acaba? Benim daha önce ki yaptığım testlerde event ve worker daha az sistem kaynağı kullanıyordu. suphp ve php-fpm kullanıyordum. fastcgi de oran bir artıyordu.
    Timeout süresi 1sn ve child process 1 olduğu halde,

    yüksek kaynak tüketen apache process leri dakikalarca aktif kalıyor. Esas sorunlardan birisi de bu.
  • 27-12-2015, 19:16:06
    #8
    zoeken adlı üyeden alıntı: mesajı görüntüle
    Kullandığınız PHP Yorumlayıcı nedir acaba? Benim daha önce ki yaptığım testlerde event ve worker daha az sistem kaynağı kullanıyordu. suphp ve php-fpm kullanıyordum. fastcgi de oran bir artıyordu.

    Tek bir process yoğun ram tüketimi yaparken,

    o process hakkında detaylı bilgiye nasıl ulaşırız.

    Bilginiz var mı bu konuda?

    Tam olarak neyin bu yalnız httpd process i zorladığını bulmam gerekiyor.
  • 28-12-2015, 01:20:29
    #9
    Ayrıca bir cron vb. olarak çalıştırabileceğimiz,

    Belli sürelerde kontrol yapıp,

    belli bir yüzdenin üzerinde ram kullanımı yapan process i killeyecek bir script de arıyorum.

    Zira apache nin rlimitmem özelliği de bir çözüm olmadı.

    Aklıma başka çare gelmiyor.