网络推广培训班,合肥网络公司seo建站,wordpress怎么用畅言,资源共享网站建设操作系统参数
CPU
对于数据库系统#xff0c;选择时刻CPU以高性能(performance)的方式工作。
Dynamic Frequency Scaling CPU动态节能技术用于降低服务器功耗#xff0c;通过选择系统空闲状态不同的电源管理策略#xff0c;可以实现不同程度的降低服务器功耗。更低的功耗…操作系统参数
CPU
对于数据库系统选择时刻CPU以高性能(performance)的方式工作。
Dynamic Frequency Scaling CPU动态节能技术用于降低服务器功耗通过选择系统空闲状态不同的电源管理策略可以实现不同程度的降低服务器功耗。更低的功耗策略意味着CPU唤醒更慢、对性能影响更大。数据库服务器一定要设置为performance模式。
DFS有以下五种模式performance|userspace|powersave|ondemand|conservative。配置命令为
$ cpupower frequency-set --governor performanceNUMA Binding 内存直接绑定在CPU上CPU只有访问自身管理的内存物理地址时才会有较短的响应时间。NUMA架构的服务器通过绑定NUMA节点尽可能地避免跨NUMA访问内存提升tidb server性能。 可使用numactl命令绑定。 以独占的方式享用CPU-Numa Binding
内存
Transparent Huge Page 对于数据库不建议使用透明大页THP。因为数据库往往具有稀疏而不是连续的内存访问模式且当高阶内存碎片化比较严重时分配THP会出现比较大的延迟。若开启针对THP的直接内存规整功能也会出现系统CPU使用率激增的现象因此建议关闭THP。
Virtual Memory Parameters 内存参数dirty_ratio和dirty_background_ratio通常无需调整。对于高性能SSD比如NVMe设备来说降低其值有利于提高内存回收时的效率。
磁盘IO
I/O Scheduler I/O调度程序确定IO操作何时在存储设备上运行以及运行多长时间。常用的IO Scheduler包括NOOP、CFQ、DEALINE。 TiDB中使用的是NOOP其IO调度方式类似一个FIFO队列。
SSD 建议使用NOOP 机械盘建议使用DEADLINE
Mount Parameters 默认方式下Linux中文件系统在文件被创建、访问、修改时都会记录一些时间戳比如最近一次被修改的时间mtime、最近一次被访问的时间atime、最近一次文件状态发生改变的时间ctime这在绝大部分场合都是没有必要的。
可以使用noatime和nodiratime禁止记录最近一次访问的时间戳。
TiDB配置参数
Performance性能参数 max-proc max-proc: 控制tidb使用的CPU核数在单台机器部署多个tidb-sever设置这个变量可以限制tidb-server使用的资源避免对其他进程造成影响。 token-limit token-limit: 配置可以同时执行请求的session的数量用于流量控制避免并发请求数过多造成tidb-server资源耗尽服务无法响应。这个类似其他类型数据库中max_connection参数 注意超过的可以连上但会阻塞在那没有响应 force-priority 控制tidb server的优先级。设置后所有请求都是使用该优先级来执行。如果tidb server主要处理响应时间要求比较高的请求可以配置为NO_PRIORITY反之如果是主要处理响应时间要求比较低的请求比如OLAP、导数操作则可以配置为LOW_PRIORITY。 committer-concurrency 控制一个事务commit阶段的最大并发数量。对一个大事务来说提交事务需要想TiKV发送大量写请求。设置更大的并发可能让大事务更快提交完成但也可能造成TiKV瞬时压力过大请求堆积无法响应。
TiKV Client相关参数
grpc-connection-count grpc-connection-count: 设置TiDB和每个TiKV之间的grpc连接数量当大量并发请求发送到一个grpc连接的时候单个gRPC连接串行发送请求可能会成为瓶颈当gRPC连接成为瓶颈时设置更大的gRPC连接数可提升性能但代价是更多消耗系统资源。
Prepared Plan Cache
enabled: 开启后减少执行计划造成的计算开销让同类型的语句使用相同的执行计划提升性能代价是当数据或查询条件变化时执行计划可能会不是最好的capacity: 用来限制cache 的大小(缓存条数)避免占用过多内存如果应用使用了大量不同类型的请求超过了capacity上限plan cache的效果会打折扣。
TiDB系统参数
Concurrency
系统资源空闲较多时设置更高并发度让资源利用的更充分可以提升整体性能但是更高并发往往消耗更多系统资源在资源紧张时候反而会降低整体性能
属性含义tidb_distsql_scan_concurrency控制TableScan和IndexScan算子的并发度tidb_index_lookup_concurrency控制IndexLookUp算子的并发度tidb_build_stats_concurrency控制Analyze执行的并发度可能会影响在线业务的延迟tidb_hash_join_concurency控制HashJoin算子的并发度tidb_index_lookup_join_concurrency控制IndexLookUpJoin算子的并发度tidb_ddl_reorg_worker_cnt 控制DDL加索引的并发度
Batch Size
一个Chunk 包含多行数据SQL语句执行时执行器以Chunk为单位来执行获取数据、表达式求值和JOIN等操作当结果集较大时更大的Chunk size可提升性能如果结果集很小小于Chunk size申请过大chunk的内存会造成性能的损失。 tidb_init_chunk_size/tidb_max_chunk_size: 默认提取的行数/最大的提取行数。TiDB当中有个自适应的过程。tidb_init_chun_size用于设置chunk中初始的数据行数默认为32。TiDB在读取结果集时会自适应地调整chunk size但最大也不会超过tidb_max_chunk_size其值默认为1024。
tidb_index_join_batch_size: 每次不是一行一行的匹配是一次性批量匹配。TiDB中表连接操作时也是采用了多行数据的批处理而不是一行一行地匹配。表连接批处理中使用的chunk大小由参数tidb_inidex_join_batch_size控制。
Limit
tidb_store_limit 控制同时发往一个tikv节点的请求数量。避免单个tikv因为请求量过大超过处理能力导致大量请求超时或者返回错误。 tidb_retry_limit tidb_retry_limit: 控制乐观事务的重试次数(对悲观事务无效)乐观事务在遇到事务冲突的时候会进行重试但是重试次数过多会使冲突加剧造成性能下降重试次数太少会造成事务执行成功率下降。
Backoff
在请求遇到可重试的错误时在重试前需要等待一段时间这个时间设置的过大会增大延迟如果设置的过小会造成很多无谓的重试消耗过多的资源。 backoff种类还是比较多例如因为网络问题需要等待获得PD分配的TSO。或者leader 转移到其他节点获取数据的时候发生缓存失效等情况。 backupoff 是tidb的一个正常行为不是错误 tidb_backoff_weight:backoff最大时间的权重通过这个变量来调整最大重试时间。如果重试时间设置为15stidb_backoff_weight等于2那么实际重试时间为30s。 tidb_backoff_lock_fast: 读请求遇到锁的backoff 时间。