Utrzymywanie stałego połączenia z server Apache i jego wytrzymałość

0

Witam.
Mam pytanko czy ktoś może posiada wiedzę na temat ile może trwać jałowe połączenie z apache'm (ew co parę sekund wysyła bajta) jak bardzo obciąża to server i jak się ma do tego PHP (jego obciążenie) i ile takich połączeń może uciągnąć średniej klasy PC (jako serv).

I drugie jak zmusić PHP by nie cache'owało danych tzn jak ma echo 'asa'; to wyśle w tym samym czasie a nie poczeka na resztę danych które mogą dojść, bo nie mogę nigdzie tego znaleźć.

0

http://php.net/manual/en/function.ob-flush.php

i zobacz pozostałe polecenia z serii ob*

0

Dobra, dzięki to mam odp na 2 pytanie ale bardziej mnie interesuje odp na 1 jest dla mnie kluczowe czy planowana architektura ma sposobność przeżyć :D

0

moim zdaniem apache mnie kontroluje ile trwa połączenie (np. download pliku może trwać w nieskończoność...), wystarczy wyłączyć timeout w php i powinno zadziałać, utrzymanie jałowego połączenia się przyda w szczególności jak klient jest za NATem. A patrzyłeś na WebSockety?

0

standardowe tcp odpada musi to być przez apache i php myślę że darmowe hostingi uciągną jakąś część klientów :D ale testy wydajności chyba muszę zrobić sam :D

1
proqix napisał(a):

Mam pytanko czy ktoś może posiada wiedzę na temat ile może trwać jałowe połączenie z apache'm (ew co parę sekund wysyła bajta)

O ile się nie mylę, masz na myśli KeepAlive'a. KeepAlive ustawia się w Apache'u (włącz lub wyłącz), razem z KeepAliveTimeout określającym czas utrzymywania połączenia. W skrócie, działa to tak, że jeśli klient wyśle żądanie do Apache'a, to po otrzymaniu odpowiedzi nie rozłączy się, a utrzyma połączenie przez ilość sekund równą KeepAliveTimeout. W przypadku gdy zasysane jest np. 10 obrazków jeden za drugim, zaoszczędzi to nieco handshakeów ( i w niektórych przypadkach zaoszczędzi zabijania i tworzenia nowych procesów przez Apache'a (w przypadku mpm_prefork)).

Problematyczne natomiast mogą być tutaj wszelkie AJAX'y - połączenia asynchroniczne. Jeśli ustawisz KeepAliveTimeout np. na 60 sekund i asynchronicznie zassane zostanie 10 obrazków jednocześnie, to jeden klient utworzy 10 połączeń, które będą utrzymywane przez 60 sekund i nie będą nic robić, co przekłada się na 10 procesów Apache'a, co znowu przełoży się na zmarnowanie kilkadziesięciu MB ramu (zakładając, że używasz normalnie mod_php i mpm_prefork).

0

dobra dzięki ma już wszystkie info.

1 użytkowników online, w tym zalogowanych: 0, gości: 1