Bao nhiêu bộ nhớ trung bình được tiêu thụ bởi hạt nhân Linux (trong không gian địa chỉ hạt nhân) trên mỗi kết nối mạng TCP/IP?Bao nhiêu bộ nhớ được tiêu thụ bởi hạt nhân Linux trên mỗi kết nối mạng TCP/IP?
Trả lời
Đối với một bộ nhớ kết nối TCP tiêu thụ phụ thuộc vào
kích thước của sk_buff (cấu trúc mạng nội bộ được sử dụng bởi hạt nhân Linux)
đọc và viết đệm cho một kết nối
kích thước bộ đệm có thể được tinh chỉnh theo yêu cầu
[email protected]:~# sysctl -A | grep net | grep mem
kiểm tra cho các biến
những chỉ định việc sử dụng bộ nhớ đệm mặc định tối đa cho tất cả các kết nối mạng trong kernel
net.core.wmem_max = 131071
net.core.rmem_max = 131071
net.core.wmem_default = 126976
net.core.rmem_default = 126976
những chỉ định sử dụng bộ nhớ đệm cụ thể để kết nối tcp
net.ipv4.tcp_mem = 378528 504704 757056
net.ipv4.tcp_wmem = 4096 16384 4194304
net.ipv4.tcp_rmem = 4096 87380 4194304
sự ba giá trị được chỉ định là kích thước bộ đệm "tối thiểu mặc định tối thiểu". Vì vậy, để bắt đầu với Linux sẽ sử dụng các giá trị mặc định của bộ đệm đọc và ghi cho mỗi kết nối. Khi số lượng kết nối tăng lên, các bộ đệm này sẽ được giảm [tối đa cho đến khi giá trị min đã chỉ định] Tương tự trường hợp cho giá trị bộ đệm tối đa.
Những giá trị này có thể được thiết lập sử dụng này sysctl -w KEY=KEY VALUE
ví dụ. Lệnh dưới đây đảm bảo bộ đệm đọc và ghi cho mỗi kết nối là 4096.
sysctl -w net.ipv4.tcp_rmem='4096 4096 4096'
sysctl -w net.ipv4.tcp_wmem='4096 4096 4096'
Điều đó tùy thuộc. Trên nhiều thứ.
Tôi nghĩ rằng kết nối không hoạt động sẽ mất vài trăm byte.
Nhưng nếu có dữ liệu trong quá trình truyền và/hoặc nhận dữ liệu thì mức tiêu thụ sẽ tăng lên. Kích thước cửa sổ gần như có thể giới hạn mức tiêu thụ này.
Mức tiêu thụ thêm cho dữ liệu không chỉ là các byte trong hàng đợi nhận/truyền. Có tổng chi phí, do đó, một phân đoạn với một byte có thể mất khoảng 2K. TCP cố gắng giảm bớt điều này, ví dụ bằng cách hợp nhất các phân đoạn thành một sk_buff duy nhất, nhưng nó không phải lúc nào cũng thành công.
Cũng phụ thuộc vào lớp nào. Trong trường hợp của một kịch bản cầu nối thuần túy, chỉ có FDB cấp cầu. Khi định tuyến được phát, có bảng định tuyến và db cấp FDB/hàng xóm cấp IP. Và cuối cùng, khi ổ cắm cục bộ ở trong chế độ chơi, bạn có kích thước cửa sổ khóa, bộ đệm ổ cắm (cả gửi và nhận và chúng mặc định là 128k lần cuối cùng), danh sách phân đoạn (nếu được sử dụng), vì vậy đó là bộ nhớ đi, nhưng một câu trả lời rõ ràng là khó thực hiện với tất cả các bộ phận được sử dụng. Bạn có thể sử dụng ss -m
để lấy số liệu thống kê bộ nhớ của các ổ cắm cục bộ.
Bạn có thể giải thích cho tôi 4 ký tự (r, w, f, t) trong đầu ra 'ss -m' không? – pradeepchhetri
- 1. Kết nối mạng TCPIP với C#
- 2. Có bao nhiêu byte bộ nhớ trong mỗi loại tiêu thụ .NET (môi trường 32 bit)?
- 3. Mô-đun hạt nhân của tôi sử dụng bao nhiêu bộ nhớ?
- 4. Làm thế nào để dọn dẹp bộ nhớ cache được sử dụng bởi hạt nhân Linux
- 5. Mức tiêu thụ bộ nhớ KDB/Q
- 6. Hạt nhân Linux - Nhận khối bộ nhớ viết cuối cùng
- 7. Không thể ghi vào bộ nhớ hạt nhân qua mô-đun hạt nhân Linux (Ubuntu)
- 8. Tiêu thụ bộ nhớ QTreeView
- 9. Tổ chức tiêu đề hạt nhân Linux
- 10. zlib, deflate: Bộ nhớ phân bổ bao nhiêu bộ nhớ?
- 11. Mô-đun hạt nhân Linux (2.6) biên dịch bao gồm các tiêu đề không phải hạt nhân
- 12. có bao nhiêu hạt nhân chạy song song trong Mathematica?
- 13. Số lượng kết nối cURL tối đa được đặt bởi là bao nhiêu?
- 14. Mức tiêu thụ bộ nhớ trên tập lệnh lặp
- 15. Có bao nhiêu bộ nhớ được sử dụng bởi một bộ lọc mờ nhạt?
- 16. TLS thêm bao nhiêu chi phí mạng so với kết nối không được mã hóa?
- 17. Có bao nhiêu chu kỳ trễ bộ nhớ trên mỗi loại truy cập bộ nhớ trong OpenCL/CUDA?
- 18. Tự động giết quá trình tiêu thụ quá nhiều bộ nhớ hay đứng trên linux
- 19. Mức tiêu thụ bộ nhớ trong Cherrypy
- 20. Linux mutexes hạt nhân
- 21. Cần tây - giảm thiểu mức tiêu thụ bộ nhớ
- 22. Máy thu phát sóng giá bao nhiêu cho bộ nhớ?
- 23. Bộ nhớ cục bộ trong chế độ hạt nhân?
- 24. Bộ nhớ ảo hạt nhân của mỗi quá trình có chứa gì?
- 25. Có bao nhiêu kết nối trong nhóm kết nối ADO.NET
- 26. ray delayed_job vấn đề tiêu thụ bộ nhớ
- 27. Có thể có bao nhiêu kết nối ổ cắm?
- 28. Có bao nhiêu bộ nhớ được sử dụng bởi các trường "thiếu tùy chọn"/"trống lặp lại" trong ProtoBuf?
- 29. Bao nhiêu bộ nhớ vm có thể sử dụng
- 30. Có bao nhiêu tuples trong kết nối?
Bạn có thể mô tả tình huống chi tiết hơn không? Nếu không có nó, ước tính tốt nhất mà bất cứ ai có thể đưa ra sẽ giống như "giữa 1K và 10M", điều này sẽ không giúp bạn nhiều. Tôi giả sử bạn có nghĩa là kết nối TCP/IP, nơi một đầu (máy chủ?) Là máy của bạn.Bạn có thể giả định rằng kết nối hiện không hoạt động hoặc ít nhất là kết nối không bị treo (tức là mọi thứ đều bị ACK trong thời gian hợp lý)? – ugoren