tcp_mem quan trọng hơn vì nó xác định cách hoạt động của ngăn xếp tcp khi sử dụng bộ nhớ. Bộ đệm gửi và nhận IMO phải là bội số của tcp_mem. Đây là một liên kết đến một công thức để nhận bộ đệm: http://www.acc.umu.se/~maswan/linux-netperf.txt . Nói ngắn gọn:
Chi phí hoạt động là: window / 2 ^ tcp_adv_win_scale (tcp_adv_win_scale mặc định là 2) Vì vậy, đối với các tham số mặc định của linux cho cửa sổ nhận (tcp_rmem): 87380 - (87380/2 ^ 2) = 65536. Cho một liên kết hiệu suất tối đa kết thúc tại: 65536 / 0.150 = 436906 byte / s hoặc khoảng 400 kbyte / s, ngày nay rất chậm. Với kích thước mặc định tăng: (873800 - 873800/2 ^ 2) /0.150 = 4369000 byte / s, hoặc khoảng 4Mbyte / s, có thể cộng hưởng cho một mạng hiện đại. Và lưu ý rằng đây là mặc định, nếu người gửi được định cấu hình với kích thước cửa sổ lớn hơn, nó sẽ hạnh phúc mở rộng gấp 10 lần số này (8738000 * 0,75 / 0,150 = ~ 40Mbyte / giây), khá tốt cho mạng hiện đại.
Đây là những gì bài báo nói về tcp_mem:
Những gì bạn loại bỏ là một giới hạn nhân tạo đối với hiệu suất tcp, không có giới hạn đó, bạn bị giới hạn bởi băng thông đầu cuối có sẵn và mất mát. Vì vậy, bạn có thể sẽ bão hòa đường lên của bạn hiệu quả hơn, nhưng tcp rất tốt trong việc xử lý việc này.
IMO một giá trị tcp_mem ở giữa lớn hơn sẽ tăng tốc kết nối khi mất ít bảo mật hơn và tăng nhẹ khả năng sử dụng bộ nhớ.
Bạn có thể theo dõi ngăn xếp mạng với:
grep skbuff /proc/slabinfo