Linux数据库服务器的性能调优
文章目录
背景
数据库服务器需要耗用大量系统资源,服务器性能高度依赖于内核管理这些资源的有效程度。这方面的低效率会导致在内核空间中耗费过多时间。另外,某些特定的低效情况会导致锁冲突,这会导致扩展性低下和串行化问题。这两个问题都会严重影响数据库性能,因为这两个问题或者消耗正常情况下应提供给数据库使用的CPU周期,或者强制数据库应用在某个内核资源上串行工作。
数据库体系结构
数据库体系结构特征:
- 有组织的表/视图,通常记录和保存在原始字符设备或文件系统上。
- 全局内存区域
- 事物日志机制
小型数据库在最简单的调优:
- 磁盘I/O的负载平衡
- 确保日志记录设备不会受到普通用户进程的干扰
- 确保存在着充足的可用内存,从而可以对事物进行缓存而不必完全基于磁盘操作
数据库中可进行性能调优的几个领域:
- I/O调优
- 队列长度和响应时间调优
- 负载平衡调优
- 全局内存调优
- 日志设备调优
当代商用数据库可以分为公用存储器类型或者无共享资源类型。共用存储器的数据库常常能够更好地执行在线事物处理(Online Transaction Processing,OLTP),而无共享资源的数据库更适用与决策支持查询类型的数据库。提供WEB服务对于Apache而言,是Linux服务器及其网络协议最广泛的用途之一。Apache拥有丰富的功能,但它并非针对高性能目标而设计。总线速率、总线吞吐率以及工作负荷生成的总线流量对于改进Linux网络栈的性能至关重要。为了消除或减少数据流经总线的次数以及为了减少访存次数而对Linux网络栈实施的任何改进都可以改善Linux软件栈性能。决策支持系统(Decision Support System, DSS)