我尝试使用influxDB保存一些监视器数据。我使用默认配置启动了influxDB,并使用python在我自己的mac中通过HTTP API编写了一些测试数据,一开始一切都很好。但是每次写一些数据后,我都会遇到一个ConnectionError。我的测试代码是
for event_id in xrange(0, 100000):
requests.post("http://127.0.0.1:8086/write?db=mydb", data="test_a,event={0} value=100 1538841600000000000".format(event_id))
执行大约16300次后,将报告错误。
HTTPConnectionPool(host='127.0.0.1', port=8086): Max retries exceeded with url: /write?db=mydb (Caused by NewConnectionError("<urllib3.connection.HTTPConnection object at 0x110a5fb10>: Failed to establish a new connection: [Errno 49] Can't assign requested address",)
然后,我应该等待大约2秒钟,然后再写入新数据。
我的操作系统是MacOS 10.14,所有数据都保存在HDD硬盘中。
influxDB版本为vv1.6.4(git:master c75cdfdfa6f71a08473fefcec71f6cbcbdef1ff4)
influxDB是否正在整理?
答案 0 :(得分:0)
好的,我找到了原因,因为此API是HTTP协议,并且请求使用TCP连接发送HTTP请求,因此,每次请求完成时,TCP连接都不会关闭,它将转到TIME_WAIT并等待超时后再关闭。这样我的操作系统的端口资源就用光了……