digoal
2018-12-15
PostgreSQL , 资源 , 性能 , 抖动 , 评估 , 稳定性
在数据库压测过程中,经常会遇到抖动的问题。为什么数据库会出现抖动呢?
持续高水位压测(把资源用个精光)会抖,数据库后台进程要做检查点,垃圾回收,刷脏,操作系统也有回收脏页的操作。
由于压测时把所有资源都用光了,当后台需要进行刷脏,做检查点,垃圾回收等动作时,就会出现资源抢占,当然会导致性能的抖动。
关于数据库负载,长时间高水位运转带来的抖动问题,实际上就是资源用太多的问题。
为了评估一个比较合理的硬件资源,应该考虑高峰期业务持续时间,预留一定的资源配比。
留给谁用呢?
freeze, 备份,standby,系统进程(后台进程要做检查点,垃圾回收,刷脏,操作系统也有回收脏页)。
短暂的高水位运转可以接受的,如果业务持续高水位运作,就需要考虑加资源或者拆分了。
您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.