Trong Linux, người ta có thể xác định mặc định của hệ thống nhận kích thước bộ đệm cho các gói mạng, nói UDP, sử dụng các lệnh sau:Xác định UDP nhận kích thước bộ đệm khi chạy trong Linux
sysctl -w net.core.rmem_max=<value>
sysctl -w net.core.rmem_default=<value>
Nhưng tôi tự hỏi, là nó có thể cho một ứng dụng (giả sử, trong c
) để ghi đè các giá trị mặc định của hệ thống bằng cách chỉ định kích thước bộ đệm nhận cho mỗi UDP socket trong thời gian chạy?
chỉ là những gì tôi đang tìm :) Tôi cũng tự hỏi, nếu tôi đã chỉ định kích thước bộ đệm cho một giá trị nhỏ, nó sẽ là tĩnh? Hoặc hệ thống sẽ tự động thay đổi kích thước bộ đệm để xử lý áp lực giao thông, nếu có? –
Tôi đã mở rộng câu trả lời của mình một chút để đề cập đến việc tự động chạy Linux TCP; trên Linux, nếu autotuning được kích hoạt, bạn có lẽ không nên điều chỉnh kích thước bộ đệm bằng cách sử dụng 'setsockopt'; nhưng trên các hệ thống khác, bạn vẫn có thể muốn. –
autotuning áp dụng cho TCP chỉ hoặc nó áp dụng cho cả TCP và UDP? – kumar