Multiprocess to Multithreading

2002 yılında yayınlanan HAProxy 1.1.7 sürümünden başlayarak, otomatik olarak birden çok HAProxy işlemi başlatmak mümkün olmuştur. Bu, nbproc yapılandırma yönergesi kullanılarak yapılır ve daha sonra ayrı işlemler cpu-map kullanılarak ayrı CPU çekirdeklerine eşlenir.

Çok işlemli yapılandırmalar belirli sınırlamalarla birlikte gelir:

  1. Stick tabloları HAProxy örnekleri arasında senkronize etmek için kullanılan HAProxy eş protokolü, yalnızca tek işlem yapılandırmalarında kullanılabilir ve birçok tablonun senkronize edilmesi gerektiğinde karmaşıklığa yol açar.

  2. HAProxy süreçleri arasında bilgi paylaşımı yoktur, bu nedenle tüm veriler, yapılandırma parametreleri, istatistikler, limitler ve oranlar işlem başınadır.

  3. Sağlık kontrolleri (health check) her bir işlem tarafından gerçekleştirilir, bu da kesinlikle gerekli olandan daha fazla sağlık kontrol trafiğine yol açar ve durum değişiklikleri sırasında geçici tutarsızlıklara neden olur.

  4. HAProxy Runtime API tek bir işleme uygulanabilir, bu nedenle tüm Runtime API komutlarının tüm ayrı işlemlere gönderilmesi gerekir.

Sonuç olarak, çok işlemli (multi process) konfigürasyonlar birçok durumda yararlı olsa da, performans avantajları artarken yönetim karmaşıklığı ile birlikte gelir.

HAProxy 1.8'den başlayarak çoklu okuma desteği uygulanmış ve HAProxy'ye dahil edilmiştir.

Last updated