我们最近升级到 OE 11.3 版本。应用程序和数据库在一个特定位置似乎很慢。但我们在应用程序或数据库中没有遇到任何性能问题。我检查了 promon 中的一些参数,例如缓冲区命中,数据库缓冲区的数量,-spin 参数。
缓冲命中 -97%
数据库缓冲区的数量 - 50000
-spin berfore timeout- 2000 看起来非常低。
有什么方法可以找到为什么数据库和应用程序仅在该位置非常慢的问题?
我们在其他地方没有遇到任何性能问题。
增加 -spin 值会提高该位置的性能吗?
位置是指地理位置。
3 回答
您没有提供太多信息:
A)关于你的意图。你只是想让一切都“更快”吗?或者是否有其他需求——比如服务器内存不足/负载过重等。
B) 关于您的系统。有多少用户、数据库、表、索引等。
C)当你说位置时——你真正的意思是什么?它是特定程序、特定查询/搜索还是特定(地理)位置?
缓冲区命中
97% 的缓冲区本身并没有说太多:
- 是否有 1 000 条记录查找或 1 000 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 可能会影响您的性能以及缓冲区命中。更改 -spin 也可能会通过利用更多 CPU 来影响您的性能。这完全取决于您的系统如何工作。最好的方法确实是尝试(使用测试设置)。
您真正应该做的第一件事是查看您的应用程序和运行次数最多的查询 - 是否利用最佳索引?如果不是,您很可能会调整很多而不会产生很大差异。阅读可用于检查索引性能等的索引使用情况、XREF 编译和不同的 VST 表。
这是一个很好的起点:
Progress 数据库的 10 大(真的更多)性能调优技巧
此外,您可以尝试优秀的免费 ProTop 软件并获得 -B 的一些猜测:
这个问题很模糊。您最好在可以进行一些“来回”并且可以引导您获得更完整答案的论坛中询问它。
你可以试试:
这些论坛都有专门的 DBA 关注领域,许多人经常在这些领域提供帮助。
我们发现添加(在 linux 服务器上)-T /dev/shm
可以显着提高性能
/oe116> cat startup.pf
-T /dev/shm
您也可以将其添加到您的common.pf
文件中
您可以通过执行(在数据库运行时) lsof |grep delete 来查看之前和之后
您应该会在硬盘上看到很多位置,然后在添加它并重新启动数据库后`它将使用共享内存