Pracuję nad serwerem proxy TCP, który zostanie umieszczony przed usługą TCP, która powinna obsłużyć od 500 do 1000 aktywnych połączeń z dzikiego Internetu.Jak wolne są gniazda TCP w porównaniu do nazwanych potoków w systemie Windows dla lokalnego hosta IPC?
Serwer proxy działa na tym samym komputerze co usługa i jest przeważnie przezroczysty. Usługa jest w większości nieświadoma istnienia serwera proxy, a jedynym wyjątkiem jest powiadomienie o rzeczywistym zdalnym adresie IP klientów.
Oznacza to, że dla każdego przychodzącego otwartego gniazda TCP są jeszcze dwa gniazda na serwerze: druga para w proxy, a druga w prawdziwej usłudze za serwerem proxy.
Rozmiary okien wysyłania i odzyskiwania dla dwóch gniazd proxy są ustawione na 1024 bajty.
Jakie są konsekwencje dla wydajności? Jak powolna jest ta konfiguracja? Czy powinienem starać się zmienić usługę, aby używała nazwanych potoków (lub innego mechanizmu IPC), czy gniazdo TCP lokalnego hosta jest w większości wydajnym IPC?
Połączenie dwóch aplikacji nie jest opcją. W tej chwili utknęliśmy w dwóch konfiguracjach procesu.
EDYCJA: Powodem posiadania dwóch oddzielnych procesów na tym samym sprzęcie jest ekonomia w 100%. Mamy tylko jeden serwer i nie planujemy więcej (bez pieniędzy).
Usługa TCP jest starszym oprogramowaniem w języku Visual Basic 6, które wykroczyło poza nasze oczekiwania. Proxy to C++. Nie mamy czasu, pieniędzy ani siły roboczej, aby przepisać i przenieść kod VB6 do nowoczesnego środowiska programistycznego.
Pośrednik to nasza próba złagodzenia konkretnego problemu z wydajnością usługi, którą otrzymujemy od czasu do czasu.
Pełnomocnikiem jest open source, and here is the project source code.
Wewnę trzne połĘ ... czenie TCP bę dzie wdrażane tak wydajnie, jak to tylko możliwe (czytaj: jako dwukierunkowa rura lokalna lub czymś podobnym) na dowolnym nowoczesnym stosie sieci wartym jego soli, wię c byłbym zaskoczony (i trochę rozczarowany Microsoft), jeśli zauważalna jest różnica w wydajności między TCP i Named Pipes dla tego przypadku użycia. –
@JeremyFriesner Zgadzam się z Tobą, chciałbym założyć, że tak jest w przypadku "Windows Server 2008". – vz0