Networking
網路緩衝區使用
我的應用程序遇到了一些問題,並且很想知道任何給定時刻的網路緩衝區使用情況。
我正在使用 CentOS 6 linux 機器。
我知道預設值存在於 /proc/sys/net/core/
但我沒有成功找到緩衝區的目前使用情況。如果有人對如何找到目前用法有任何線索,請告訴我。
提前致謝。
如果您執行
ss
或netstat
值Recv-Q
並Send-Q
產生此輸出。IE
$ ss -nt State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 203 0 192.168.1.2:36122 198.xxx.xxx.xxx:80 CLOSE-WAIT 1 0 192.168.1.2:43870 140.xxx.xxx.xxx:80
我添加了一個簡單的 python 程序來展示這一點。
#/usr/bin/python from time import sleep from socket import * import subprocess if __name__ == "__main__": sock = socket(AF_INET, SOCK_STREAM) sock.setsockopt(IPPROTO_TCP, TCP_CORK, 1) sock.connect(('www.google.com', 80)) length = sock.send("GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n") sport = sock.getsockname()[1] print "Length of sent data: {0}".format(length) subprocess.call(["ss" ,"-nt", "sport", "=", ":{0}".format(sport)]) sock.close()
哪個生產
Length of sent data: 40 State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 40 192.168.1.2:34259 173.194.41.180:80