在 Unix 上,数据库服务器使用交换空间和内存来管理高速缓存大小。交换空间是大多数(但不是全部)Unix 操作系统上的系统范围资源。在本节,内存和交换空间的总和称作系统资源。有关详细信息,请参见相应的操作系统文档。
在启动时,数据库会从系统资源中分配指定的最大高速缓存大小。它会将最大高速缓存大小的一部分装载到内存(初始高速缓存大小)中,并保留其余部分作为交换空间。
在数据库服务器关闭之前,数据库服务器所用的系统资源总量是恒定的,但在内存中装入的比例会出现变化。数据库服务器会每分钟计算一次高速缓存和运行统计信息。如果数据库服务器处于繁忙状态并且需要很多内存,它可能会将高速缓存页从交换空间移动到内存中。如果系统中的其它进程需要内存,则数据库服务器可能会将高速缓存页从内存中移出,移至交换空间中。
缺省情况下,将使用基于可用系统资源的启发式算法来指定初始高速缓存大小。初始高速缓存大小始终小于数据库总大小的 1.1 倍。
如果初始高速缓存大小大于可用系统资源的 3/4,则数据库服务器将退出并报告 [内存不足
] 错误。
您可以使用 -c 选项来更改初始高速缓存的大小。请参见-c 服务器选项。
最大高速缓存必须小于计算机上的可用系统资源。缺省情况下,将使用基于计算机上可用系统资源和总物理内存的启发式算法来指定最大高速缓存大小。高速缓存大小决不会超过指定或隐式的最大高速缓存大小(即所有打开的数据库和临时文件的大小与主堆大小的总和)。
如果您指定的最大高速缓存大小大于可用系统资源,则数据库服务器将退出并报告 [内存不足
] 错误。如果您指定的最大高速缓存大小大于可用内存,数据库服务器将发出性能降低警告,但不会退出。
数据库服务器将从系统资源中分配所有最大 高速缓存大小,并且在数据库服务器退出之前不会放弃该大小。您应该确保所选择的最大高速缓存大小提供了较优的 SQL Anywhere 性能,并且为其它应用程序保留了足够的空间。缺省最大高速缓存大小的公式就是要尽量达到这一平衡的启发式算法。只有当缺省值不适用于您的系统时,才需要调整缺省值。
可以使用 -ch 服务器选项来设置最大高速缓存大小,并限制高速缓存自动增长。有关详细信息,请参见-ch 服务器选项。
如果指定了 -c 选项,则最小高速缓存大小与初始高速缓存大小相同。如果没有指定 -c 选项,则 UNIX 上的最小高速缓存大小是 8 MB。
您可以使用 -cl 服务器选项来调整最小高速缓存大小。请参见-cl 服务器选项。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |