+关注继续查看

背景

公司业务部署在阿里云,有用到influxdb,领导要求压测一下阿里云influxdb的写性能,以便确认线上配置是否需要升配


使用压测工具jmeter


准备脚本试运行

准备好了脚本,运行一下,没报错,数据已成功写入influxdb

image


> select * from cpu
name: cpu
time                free host  os     use
----                ---- ----  --     ---
1606916220376176216 80   node1 ubuntu 10
1606916320291776043 80   node1 ubuntu 10
1606916376937072166 80   node1 ubuntu 10


更改请求运行报错

image

报错了,我就增加了一行数据,报错了,难道不支持发送多行数据吗

image


使用POSTMAN验证


image


可以看到,使用postman是支持发送多行数据的

> select * from mem
name: mem
time                free host  os     use
----                ---- ----  --     ---
1606916603839965704 90   node1 ubuntu 11
1606917024796507354 90   node1 ubuntu 11
1606917098447242174 90   node1 ubuntu 11
> select * from cpu
name: cpu
time                free host  os     use
----                ---- ----  --     ---
1606916220376176216 80   node1 ubuntu 10
1606916320291776043 80   node1 ubuntu 10
1606916376937072166 80   node1 ubuntu 10
1606917024796507354 80   node1 ubuntu 10
1606917098447242174 80   node1 ubuntu 10


调试

那为什么使用jmeter发送多行数据不行,使用postman就可以呢?

使用wireshark抓包

postman发送数据时,抓包,发现第一行数据尾部多了个\n

image

jmeter发送数据时抓包,发现数据尾部多了个\r\n

image


通过抓包发现它们换行符不一样


注意,如果通过wireshark的HTTP追踪流是不好发现问题的

image


这个是jmeter的

image


这个是postman的

image


你会发现请求内容都是一样,分辨不出问题,这都是因为换行符被转义了,我开始排查的时候就是使用http的追踪流,没发现不一样的地方,所有这里要注意点


那么如何解决呢,我也是第一次碰到这个问题,所以Google了一下,找到以下办法

在数据尾部声明换行

${__unescape(\n)}

image


运行发现还是报错,抓包看下,发现尾部换行确实变成了\n,但是中间还是多出一个\r\n,怎么解决?

image


那就把数据写成一行试试 (注意,数据尾部不要按回车切换到下一行),果然成功了

image

问题解决

> select * from cpu,disk,mem limit 2
name: cpu
time                free host  os     use
----                ---- ----  --     ---
1606916220376176216 80   node1 ubuntu 10
1606916320291776043 80   node1 ubuntu 10
name: disk
time                free host  os     use
----                ---- ----  --     ---
1606943778058176890 90   node1 ubuntu 11
1606943794853063249 90   node1 ubuntu 11
name: mem
time                free host  os     use
----                ---- ----  --     ---
1606916603839965704 90   node1 ubuntu 11
1606917024796507354 90   node1 ubuntu 11


IDEA中中文乱码问题解决方案
打开File-Setting, 找到File Encodings这个选项,把encoding设置成你工程的编码即可,一般是UTF-8,如下图(红框的地方),然后重新rebuild一下,基本就行了
不写一行代码 大家好啊,之前栈长给大家推荐了一款 IDEA 插件 ,人工智能协助写代码,写代码是真快,今天,栈长再给大家推荐一款软件开发神器:飞算全自动软件工程平台,真正不用写一行代码!