Почему часть соединения отключена, если номер соединения tcp до 1000? - PullRequest
0 голосов
/ 30 мая 2018

Я пишу две программы, используя сокет.Сервер прослушивает порт.И это откроет поток для соединения.Клиент отправляет соединение.

Когда я запускаю сервер и клиент локально, я могу создать 5000 соединений.Однако когда я размещаю серверную программу на облачном сервере, я использую watch ss -s, чтобы увидеть номер соединения tcp.В процессе установления 5000 соединений некоторые соединения будут закрыты автоматически.

Даже если я установлю только 1300 соединений, некоторые соединения TCP также будут закрыты.Я использовал команду ulimit -n 65536, чтобы открыть число локальных и удаленных потоков для 65536. И этот результат нестабилен, возможно, что из следующих 1300 подключений только 500 будут успешными, а 800 - неудачными ....

Почему это случилось?Это из-за скорости интернета?Или это из-за слишком большого количества потоков?Но мой тест на локальном компьютере не проблема

Ниже приведен результат команды watch ss -s:

TCP:   1310 (estab 953, closed 348, orphaned 0, synrecv 0, timewait 0/0), 
ports
0

Transport Total     IP        IPv6
*         0         -         -
RAW       0         0         0
UDP       10        7         3
TCP       962       959       3
INET      972       966       6
FRAG      0         0         0
...