- 系统的配置参数没有正确配置,如数据库,redis等。具体可以参考:项目性能优化参数配置汇总
- TCP的配置,在特定的场景中,有可能会遇到延迟的ACK,它会限制链路上所发送的数据包,每秒钟只会有2-5个数据包。这是因为TCP两个算法所引起的死锁:Nagle以及TCP Delayed Acknowledgement。在200-500ms的超时之后,会打破这个死锁,但是微服务之间的通信却会分别受到影响。推荐的方案是使用TCP_NODELAY,它会禁用Nagle的算法,多个更小的包可以依次发送。其中的差别在5到500 req/sec。
- 数据传输使用的编码:protobuf > java二进制 > json > xml
- 日志,Logger所记录的数据应该是结构化的数据,便于后续的工具进行读取和处理,而不应该是一堆String。如果是记录重复的错误,在第一次出现的时候进行记录,后续出现时只需对一个计数器进行递增,告知对应的错误出现了多少次即可。对于实时系统的调试,可以使用代码编织(code weaver)的技术,如Byte Buddy,因为它能够避免编写和运行不必要的日志代码。
导致系统性能卡又慢的原因汇总(不断补充)
最新推荐文章于 2024-02-01 08:00:00 发布