bling123 发表于 2021-12-2 16:50:43

压测时,cpu出现锯齿形状的问题探讨

执行一个接口,做稳定性测试,连续执行一段时间后,发现cpu、内存会出现锯齿状,而且很规律。


分析:
1)一开始以为是应用程序的错误导致这种情况发生,因此查看了应用日志、系统日志、进程日志,是否存在错误及崩溃日志。---------------没有
2)又重新看了负载图,发现每当wait io升高,user实际业务的cpu占用就降低,相应的内存使用率也减少,cpu处于空闲状态。---------------是不是因为线程数设置的太大了,导致磁盘读写处理不过来?
因此,将线程数调低后,重新开始测试,发现还是有相应的锯齿状,不过好消息是只存在于cpu,内存测了6小时下来稳定了。说明线程数对于磁盘的读写还是有一定影响的。

3)又通过iostat -c-d-t -k1去每隔一秒钟去刷新并读取磁盘的io读写能力

发现正常情况下,写能力稳定在1000kb/s左右,但是当出现锯齿状,会下降到300-400kb/s左右。-----------这个很不正常,难道真的是磁盘读写能力不行这个原因导致的?
4)涉及到读写,又问了研发,了解了这个接口最主要就是有一个插库操作,存日志这个操作-----------难道有慢查询?。
查看系统日志,拉出涉及到的sql:
SELECT id,create_time,value FROM tb_parameter WHERE id = "svs_config";---------------从数据库里面获取svs配置

INSERT INTO tb_operation_log ( operation, result, target, type, ip ) VALUES ( "印章验证", "成功", "POST:/simp/api/stamp/verify", 5, "192.168.10.51");-------------向数据库存入日志

SELECT id,project_type,name,description,app_key,app_secret,parent_id,create_by,update_time,update_by,create_time FROM tb_project WHERE app_key = "s38312772628391937";----------获取appey对应信息,并判断是否为真实appkey

SELECT id,status,name,serial,fingerprint,certificate,certificate2,certificate3,role_type,create_by,create_time FROM tb_admin WHERE certificate = "MIIDDDCCArGgAwIBAgINAOzAYEW6LBW7eR7xXjAKBggqgRzPVQGDdTAgMQswCQYDVQQGEwJDTjERMA8GA1UEAwwIc20yX3Jvb3QwHhcNMjExMTIyMTg1OTM2WhcNMzcxMTIyMTYwMDAwWjAXMRUwEwYDVQQDDAzliLbnq6DkurpfMDEwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAATjhWMq2IMMX9mZv2Y9pdHzRpkhq3GrS5cPHRAYIDoJdwYFQ+kmq0KLQeH6zTtuYSFemw5G5nUq4+kMu5WA7r5ho4IB1zCCAdMwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUL5KxbuGQEyozse8SH12lvBGv32owDgYDVR0PAQH/BAQDAgeAMIGbBgNVHSUBAf8EgZAwgY0GCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDAwYKKwYBBAGCNwoDBAYJYIZIAYb4QgQBBggrBgEFBQcDCQYIKwYBBQUHAwowLgYDVR0fBCcwJTAjoCGgH4YdaHR0cHM6Ly9haWEuc3lhbi5jb20uY24vY3JsL2EwYgYIKwYBBQUHAQEEVjBUMCQGCCsGAQUFBzABhhhodHRwczovL29jc3Auc3lhbi5jb20uY24wLAYIKwYBBQUHMAKGIGh0dHBzOi8vYWlhLnN5YW4uY29tLmNuL2lzc3Vlci9hMB8GA1UdIwQYMBaAFE62EA55ojyyltMkTdh/2Ac4lpUEMEEGA1UdIAQ6MDgwNgYIKoEchvAAZAEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9jcHMuc3lhbi5jb20uY24vY3BzMTAKBggqgRzPVQGDdQNJADBGAiEAvbbxtmNV9bbRHVL2w/8aNU41Hw+1/2hTfPwUgQIRR9cCIQCuoAOjmpQP+N6fqyhsIAs4HXEu3Z/5SuNWxtRuCR6pxA==";---------------通过证书获取到对应的信息

从iostat中我们知道,根本就没有读,只涉及到写,难道就插入了一个insert就不行了?
5)晚些时候,我准备将数据库与服务分离,测试一下看一下结果。
-----------------至此,我已经无计可施,大家帮忙看看有没有什么其他的思路呢。

Qiuuuu 发表于 2021-12-2 18:03:32

路过
页: [1]
查看完整版本: 压测时,cpu出现锯齿形状的问题探讨