我们最近升级到OE 11.3版本。应用程序和数据库在某个特定位置的速度似乎较慢。但我们在应用程序或数据库中没有遇到任何性能问题。我在promon中检查了一些参数,如缓冲区命中率、数据库缓冲区数量、-spin参数。
缓冲命中率-97%
数据库缓冲区的数量-50000
-spin berfore超时-2000,看起来很低。
我们有什么方法可以找到为什么数据库和应用程序只在那个位置运行非常慢的问题吗?
我们在其他地方没有遇到任何性能问题。
增加-spin值会提高该位置的性能吗?
位置是指地理位置。
您没有提供太多信息:
A) 关于你的意图。你只是想让一切都"更快"吗?或者还有其他需求吗?比如服务器内存不足/负载过重等。
B) 关于您的系统。有多少用户、数据库、表格、索引等
C) 当你说地点时,你真正的意思是什么?是特定的程序、特定的查询/搜索还是特定的(地理)位置?
缓冲区命中
97%的缓冲区本身并不能说明太多:
- 是否有1000个记录查找或1000 000 000
- "Primary Buffer hits"没有说明单个表。也许所有的"缓冲区未命中"都来自一个表(或者很少)
缓冲区命中的简单解释:
缓冲区(内存)中读取的记录是"命中"记录,而从磁盘中读取的则不是。
1 000 record lookups with 97% buffer hits means:
970 records are read from buffer (memory). (0.97 x 1 000)
30 records are read from disk. (0.03 x 1 000)
Increasing to 99% buffer hits means you will remove:
20 disc reads. (0.02 x 1 000)
1 000 000 000 record lookups with 97% buffer hits means:
970 000 000 records are read from buffer (memory).
30 000 000 are read from disk.
Increasing to 99% buffer hits means you will remove:
20 000 000 disc reads.
在第一种情况下,当从97%到99%时,你根本不会注意到任何事情。在第二种情况下,制动盘上的负载将大大降低。
结论
增加-B可能会影响您的性能以及缓冲区命中率。改变旋转也可能会利用更多的CPU来影响您的性能。这完全取决于你的系统是如何工作的。真正最好的方法是尝试(通过测试设置)。
您真正应该做的第一件事是查看您的应用程序和运行次数最多的查询——它们是否利用了最佳索引?如果不是这样的话,你很可能会调整很多而不会产生很大的差异。阅读关于索引使用、XREF编译和可用于检查索引性能的不同VST表等。
这是一个很好的起点:
进度数据库的前10个(更多)性能调整提示
此外,你可以尝试优秀的免费ProTop软件,并获得一些猜测-B:
ProTop
这个问题很模糊。你最好在论坛上提问,在那里可以进行一些"来回",并引导你得到更完整的答案。
你可以试试:
- http://progresstalk.com
- https://community.progress.com
- http://peg.com
这些论坛都有专门的DBA关注领域,许多人经常会在这些领域提供帮助。
我们发现(在linux服务器上)添加-T /dev/shm
可以大大提高的性能
/oe116> cat startup.pf
-T /dev/shm
您也可以将其添加到您的common.pf
文件中
您可以通过(在数据库运行的情况下)执行lsof|grep删除
您应该会在硬盘上看到很多位置,然后在添加并重新启动数据库后,它将使用共享内存