zlog 占cpu

本文探讨了在压力测试中遇到的问题,包括zlog级别设置不当导致的CPU占用率上升及IO负载增加,自定义memory pool对性能的影响以及tcmalloc的使用方法。此外,还分析了请求堆积导致内存激增的现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

压力测试中, zlog级别设置比较低, log输出比较多, 已经很明显的造成cpu占用率上升; 同时写磁盘居多,io高, 导致load升高。



基本功能性问题排除后, 压力时,将log级别调高。



另外, 自己实现的memory pool, 发现比较影响性能, 连简单的new/delete都比不上, 为什么?

memory pool 实现分配好几种固定大小的内存块; 需要时从中获取,用完归还。 使用pthread_mutex_lock 做进程内的多线程互斥。

后来在压力测试过程中, 发现不使用memory pool时吞吐量反而上去了一些


直接使用new/delete 也没有发现内存碎片问题, 性能上也还行; 实在觉得必要, 可以使用tcmalloc.

使用tcmalloc的方法:

最后一个-ltcmalloc


tcmalloc  检查内存泄露

env HEAPCHECK=normal ./program  ../config.xml

valgrind --leak-check=full ./program ../config.xml 


测试中发现某些时候内存激增, 但是前后端模块的cpu都比较低, 原来是压力程序的请求都在模块中堆积,导致内存上涨。


为什么前后端模块cpu都比较低, 请求仍然在队列中排队呢?



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值