AIX的内核参数的调整对数据库和应用的性能至关重要。一般来说,在部署阶段,我们必须对内核参数做适当的调整,上线以后,也需要对内核的某些参数做出微调。最近,收到一个case,发现errpt里面有大量的”NIM thread blocked”事件,老外抱怨前端应用很慢,通过nmon收集信息,发现有大量的page in/out。
经过分析,我发现有一个相当重要的参数,需要我们去关注,那就是lru_file_repage.简单来说,就是如果将这个参数设置为0的时候,AIX会尽可能的keep住计算内存在RAM里面.在AIX6.1里面这个参数默认为0.在启用了STMM的DB2数据库里面,数据库内存的规则也是会尽量不让计算内存交换出去.
对于这个参数IBM的官方解释如下:
lru_file_repage – when the number of permanent memory pages (numperm) falls between minperm and maxperm (or the number of client memory pages falls between minperm and maxclient), this setting indicates whether repaging rates are considered when deciding to evict permanent memory pages or computational memory pages. Setting this to 0 tells AIX to ignore repaging rates and favor evicting permament memory pages, keeping more computational memory in RAM. The AIX 5L default is 1/true (consider the repaging rate), The AIX 6.1 default is 0/false (now a restricted setting).
在我们调整完该参数后,再微调了数据库的另外一些参数,数据库性能得到了大幅度的提升,没有再出现”NIM thread blocked”.AIX5.3/6.1里面,内核参数发生了一些变化,除了以上提到的这个参数外,还有其它的内核参数需要我们关注.