数据库优化之主机调优
做为数据库工程师(dba)需要对很多知识要了解,包括主机操作系统、存储、数据库,开发语言等。因此数据库涉及的知识还是比较广泛的,这篇文章主要是给大家分享一下关于主机操作系统配置及内核参数的设置对数据库性能的影响。
我遇到过一些关于主机操作系统参数设置不合理而引起的数据库性能问题,比如数据库刚打开后,数据库的性能还可以,但是随着时间增长,主机的内存就会消耗得很多,数据库就会变慢;还有就是IO繁忙程度100%,但是每次磁盘读写很少等等。
我们遇到这些问题,如果对主机操作系统不熟悉,那么在数据库层面可能就解决不了,下面我简单介绍一下对主机操作系统参数的一些优化建议。
1.内核参数:
AIX平台:
Maxperm%和minperm%
这两个参数是在aix操作系统上设置最大文件缓存和最小文件缓存,这两个参数肯定要更改,因为数据库使用共享内存段,不需要文件缓存。这两个参数一般是根据内存的大小来设置一定比例,一般最大文件缓存最大设置20%足够了。
tcp_sendspace,tcp_recvspace,udp_sendspace,udp_recvspace
这四个参数是AIX操作系统上安装RAC 的时候需要更改的,如果应用开发的不好,出现大量的RAC 内存之间的数据传输。如果该参数设置不合理,那么会影响RAC数据库的整体性能。
Hp平台:
filecache_max、filecache_min
这两个参数是hp-unix设置最大文件缓存和最小文件缓存的,如果不更改也可以使用,但是会出现性能问题。
2 . 交换区
网上有很多关于交换区的分配方法解释,其实很多都是建议值,大家不要去分的那么详细,只要记住,如果硬盘有足够多的空闲空间,我们留着也没有用,那么为什么不分配给swap呢。特别是在hp-ux上交换区对性能影响很大,因此如果可以的话,交换区的空间分配尽量大。
3. 数据库内存分配比例
主机内存用作如下地方: 主机操作系统、主机进程、数据库。因此我们分配数据库内存还要看看应用进程数,建议是数据库最大内存占用全部内存的50%。然后根据使用情况然后再适当调配,主机的内存够不够用就看vmstat 中的pi,如果pi有值,那么就是不够用了,如果为0那么就是够用,不要看网管软件中的主机内存使用。
4. 主机的主要监控命令
•vmstat
•Iostat
•entstat(aix)
•topas(aix)
•glance(hp-ux)
•top(linux)
•nmon(aix,linux等等)