- 论坛徽章:
- 0
|
各位专家好!
小白请教个aix系统问题 ;)
系统配置:
aix 5.3 4cpu 8G mem
我们的一个应用系统在进行压力测试时,打开nmon监控系统资源状态,发现可用物理内存不断减少,减少的量大约和系统产生的日志量相同,应用系统停止运行后物理内存没有被释放。
经调查,发现是日志模块中write函数不断写文件导致的:随着日志的不断生成,可用物理内存不断减少,应用系统停止运行后物理内存不释放。但是手工删除产生的日志文件,物理内存被释放。
测试系统中的cp命令,发现赋值一个大约500M的文件,可用物理内存大约减少500M。
根据以上情况推断,我推测以上情况是由于aix的某种内存分配策略导致的,进一步调查,以上现象是操作系统的page cache导致的,aix提供了一个系统调用sync_range,可以指定一个选项NO_CACHE,强制释放一个文件对应的page cache。 修改应用系统日志代码,在write调用后调用sync_range强制释放page cache,再次进行压力测试,在较短时间内,物理内存表现平稳,没有明显下降。 但是经过4,5个小时的运行后,系统可用物理内存还是下降了将近30%,我想这部分内存消耗可能是因为我们应用系统使用的一些中间件系统产生的日志导致的。
另外,据我了解其他类unix系统上都有一个守护进程定时的清理缓存。我测试的服务器上确实也有一个进程在运行:
"xxxxxx xxxxxx xxxxx syncd 60"
但是,我们在第一次压力测试结束后第二天进行第二次测试时,发现可用物理内存并没有回到第一次压力测试开始时的水平。
综上,请教各位专家:
1、求 aix page cache策略方面的详细资料;
2、是否有方法全局设置aix内存分配策略,在写文件时不分配物理内存,或者是否有策略可以回收这些已分配的物理内存
小白接触aix不久,还请专家指教,谢谢;) |
|