socket配置
创建:2025-04-20 01:03
更新:2025-04-24 22:40

配置允许更大的缓冲区,可以有效降低包阻塞和重试,提升网络性能。适合内网服务这种有限连接数的网络连接使用,不建议用于对外服务。

vim /etc/sysctl.conf 

配置最大读写缓冲区为25M

net.core.rmem_max = 26214400
net.core.rmem_default = 212992
net.core.wmem_max = 26214400
net.core.wmem_default = 212992
vm.dirty_writeback_centisecs=100
sudo sysctl -p
sudo sysctl vm.dirty_writeback_centisecs

程序中设置缓冲区

int buffer_size = 26214400;    // 25 MB
socklen_t len = sizeof(buffer_size);
setsockopt(self.sockfd, SOL_SOCKET, SO_RCVBUF, &buffer_size, len);
int ret = getsockopt(self.sockfd, SOL_SOCKET, SO_RCVBUF, &buffer_size, &len);