tcp_mem은 메모리 사용과 관련하여 tcp 스택의 작동 방식을 정의하므로 더 중요합니다. IMO 송신 및 수신 버퍼는 tcp_mem의 배수 여야합니다. 다음은 수신 버퍼에 대한 식에 대한 링크이다 http://www.acc.umu.se/~maswan/linux-netperf.txt이 . 한마디로 :
오버 헤드는 다음과 같습니다. window / 2 ^ tcp_adv_win_scale (tcp_adv_win_scale 기본값은 2) 따라서 리시브 창의 Linux 기본 매개 변수 (tcp_rmem)의 경우 : 87380-(87380 / 2 ^ 2) = 65536. 대서양 횡단 링크 (150ms RTT)가 주어지면, 최대 성능은 65536 / 0.150 = 436906 bytes / s 또는 약 400 kbyte / s로 끝나며, 오늘날에는 실제로 속도가 느립니다. 기본 크기가 증가하면 (873800-873800 / 2 ^ 2) /0.150 = 4369000 바이트 / s 또는 약 4Mbytes / s로 최신 네트워크에 적합합니다. 발신자가 더 큰 창 크기로 구성된 경우 이것이 기본값 인 10 배 (8738000 * 0.75 / 0.150 = ~ 40Mbytes / s)까지 확장 할 수 있으며 이것이 현대 네트워크에 매우 적합합니다.
다음은 tcp_mem에 대한 기사입니다.
제거하는 것은 사용 가능한 엔드 투 엔드 대역폭과 손실에 의해 제한되지 않는 tcp 성능에 대한 인위적인 제한입니다. 따라서 업 링크를 더 효과적으로 포화시킬 수 있지만 tcp는 이것을 처리하는 데 능숙합니다.
IMO 중간 tcp_mem 값이 클수록 보안 수준이 떨어지고 연결 속도가 빨라지고 메모리 사용량이 약간 증가합니다.
다음을 사용하여 네트워크 스택을 모니터링 할 수 있습니다.
grep skbuff /proc/slabinfo