---
title: 调优思路
description: "性能调优首先要发现问题，找到性能瓶颈点，然后根据瓶颈所处层级选择优化的方法。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/ClickHouse/kunpengclickhouse_05_0008.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/ClickHouse/kunpengclickhouse_05_0008.html
indexId: 9c12e327b0b131131a4c806dd59954ae625467d69a712453bd755f16ee935d6679
---
# 调优思路

性能调优首先要发现问题，找到性能瓶颈点，然后根据瓶颈所处层级选择优化的方法。

调优分析思路如下：

- 对于服务端的问题，需要重点定位硬件指标，包括CPU、内存、硬盘、BIOS配置。对于读写测试用例，重点关注磁盘以及网络的IO性能；对于计算密集型，例如BulkLoad，需要关注CPU瓶颈。
- 对于网络问题，网卡中断绑核对于性能提升增益可观。


**表1 可能的瓶颈点**

| 瓶颈点 | 说明 |
| --- | --- |
| 硬件/规格 | 一般指的是CPU、内存、磁盘IO方面的问题，分为服务器硬件瓶颈、网络瓶颈（对局域网可以不考虑）。 |
| 中间件 | 一般指的是应用服务器、Web服务器等应用软件，还包括数据库系统。例如：中间件WebLogic平台上配置的JDBC连接池的参数设置不合理，造成的瓶颈。 |
| 前端延迟与后端执行 | 通过topdown分析，是否存在前端延迟瓶颈、带宽瓶颈以及后端执行瓶颈和内存瓶颈。 |
| 热点函数 | 通过perf进行热点分析，针对热点部分分析是否有代码优化手段。 |
| 应用程序 | 一般指的是开发人员开发出来的应用程序。例如，JVM参数不合理，容器配置不合理，慢SQL（可使用阿里云APM类产品如ARMS协助定位），数据库设计不合理，程序架构规划不合理，程序本身设计有问题（串行处理、请求的处理线程不够、无缓冲、无缓存、生产者和消费者不协调等），造成系统在大量用户访问时性能低下而造成的瓶颈。 |
| 操作系统 | 一般指的是Windows、UNIX、Linux等操作系统。例如，在进行性能测试，出现物理内存不足时，虚拟内存设置也不合理，虚拟内存的交换效率就会大大降低，从而导致行为的响应时间大大增加，这时认为操作系统上出现性能瓶颈。 |
| 网络设备 | 一般指的是防火墙、动态负载均衡器、交换机等设备。当前更多的云化服务架构使用的网络接入产品：包括但不限于SLB/WAF/高防IP/CDN/全站加速等等。例如，在动态负载均衡器上设置了动态分发负载的机制，当发现某个应用服务器上的硬件资源已经到达极限时，动态负载均衡器将后续的交易请求发送到其他负载较轻的应用服务器上。在测试时发现，动态负载均衡器没有起到相应的作用，这时可以认为网络瓶颈。 |


调优的通用步骤如图1所示。

图1 调优通用步骤
