Итак, я использую сервер FreeBSD, который подключен к симметричной оптоволоконной линии со скоростью 300 Мбит / с. Часто ему приходится обслуживать пользователей на другом континенте, поэтому проверенный пинг составляет от 100 до 300 мс, а в крайних случаях - 625 мс.
При наихудшем случае задержки (625 мс) я рассчитал, что размер моего окна должен быть 18,75 МБ. Итак, я установил свой kern.ipc.maxsockbuf
на 39321600 и оба мои net.inet.tcp.recvbuf_max
и мой net.inet.tcp.sendbuf_max
на 19660800. Но это не сильно помогло, по прибытии все еще очень медленно. Я также пробовал включить net.inet.tcp.path_mtu_discovery
и, похоже, это немного помогло, но с сервером, включенным в восходящий канал 300 Мбит / с, я получаю только около 12 Мбит / с, когда скорость загрузки приближается к 50 Мбит / с.
Мне что-то не хватает, и что еще я могу сделать, чтобы оптимизировать сервер для обработки большого канала? Перенос сервера не вариант.