
Një shërbim backend ose mikroshërbim që hap mijëra lidhje HTTP dalëse në sekondë mund të dështojë edhe kur përdorimi i CPU-së është vetëm 10%. Shkaku i përshkruar nuk është rrjedhja e memories apo një kërkesë e ngadaltë në bazën e të dhënave, por gjendja TCP TIME_WAIT e sistemit operativ.
Në këtë gjendje, të dhënat që identifikojnë lidhjen — IP-ja dhe porta e burimit, si dhe IP-ja dhe porta e destinacionit — mbahen në tabelën e socket-eve të kernelit për një periudhë prej 2 × MSL. MSL është jetëgjatësia maksimale e një segmenti TCP. Kjo do të thotë se burimet e lidhjes nuk lirohen menjëherë pas përfundimit të komunikimit.
Linux ka një numër të kufizuar portash të përkohshme për lidhjet dalëse, zakonisht rreth 28 000 në intervalin 32768–60999. Hapja e vazhdueshme e lidhjeve të reja pa ripërdorimin e tyre mund ta shterojë këtë rezervë. Teksti sjell si shembull një mikroshërbim që hap 500 lidhje në sekondë pa i ripërdorur, duke ilustruar se kufizimet e lidhjeve TCP mund të bëhen pengesë edhe kur procesori nuk është i ngarkuar.
Burimi: DEV Community (Web Dev Feed) — lexoni artikullin e plotë në anglisht.

