SSD I/O容量约为450 is。当我将文件从一个文件夹复制到另一个文件夹时,我可以在中看到,读写速度之和大约为450 in。为什么在执行读取、转换和插入过程时,dbeng9或dbsrv9不会发生同样的情况呢?
这些参数如下:
C:\Program Files\Sybase\SQL Anywhere 9\x64\dbsrv9.exe
C:\Tributos\Dados\Asa9\Almirante\Integra.db -xtcpip -gl all -c 5000M -cl 5000M -ch 5000M -gp 8K -gb high -gt 4 -cs -n cnv_tributos
这个过程使用的不超过25%从每一个从四个核心,所以我不知道哪里是瓶颈。
Sybase手册通知说,每个座位的许可证(我正在使用的那个)被用于使用所有核心来处理请求。"-gt 4“的目的是强制使用4个核心。这看起来是一种默认的行为,好像服务器进程期望执行更多的约定或更多的查询,但这不会发生,只有我在这个过程中使用数据库。
我需要使用机器的最大容量,因为我整天都在使用ETL (提取、转换和加载)场景。这些程序运行了几个小时,如果我能使运行速度快4倍,这将使我的一天。
复制文件->
运行->的过程
SSD ->三星SSD 840 EVO 500 SSD设备
Sybase文档参考。
函数(-gn)设置数据库服务器可以并发处理的最大活动请求数(包括用户请求和系统请求)。
语法{ dbsrv9 / dbeng9 } -gn整数.
适用于所有操作系统和服务器。
Description设置数据库服务器可以并发处理的活动用户和系统请求的数量。如果数据库服务器收到额外请求时活动请求的最大数量已经在使用,则新请求必须等到另一个请求完成为止。
每个连接对每个请求使用一个线程,当请求完成时,线程将返回到池中供其他连接使用。由于任何连接一次都不能有多个正在进行的请求,因此没有一个连接一次使用多个线程。此规则的一个例外情况是,如果Java应用程序使用线程。Java应用程序中的每个线程都是数据库服务器执行线程。
对于网络数据库服务器和个人数据库服务器,缺省值为20个线程,但Windows CE中的默认线程除外。
在Windows /2000/XP上,您可能希望调查请求的性能监视器读取:活动和请求:未排定。如果活动请求的数量总是小于-gn,则可以降低-gn。如果总请求的数量(活动+非计划的)通常大于-gn,那么您可能需要增加-gn。性能监视器不适用于UNIX或Linux平台。
函数(-gt)设置数据库服务器可以同时运行的最大请求数。此选项仅适用于多处理器系统。
语法{ dbsrv9 / dbeng9 } -gt整数.
适用于除NetWare以外的所有操作系统和服务器。
网络数据库服务器使用计算机上可用的所有CPU(默认)。使用基于CPU的许可,网络数据库服务器只使用获得许可的处理器数量。此外,个人数据库服务器和运行时数据库服务器都仅限于一个处理器。
我试图将这两个参数都设置为4和1,结果没有变化。
发布于 2014-03-06 12:08:23
有两件事在脑海中闪现:
许多这样的进程仍然被优化为旋转金属,所以它们将避免并发性,在那里它会造成I/O争用,因为使用disc+head驱动器,这可能对性能的损害远大于它的帮助--增加额外的处理线程,增加CPU利用率,但会使磁盘更多地成为一个瓶颈,因为头部重击。对于固态驱动器(特别是读取操作)来说,I/O争用问题要小得多,因为您没有摇头问题,因此可以增加I/O操作的并发性,而不是损害。
如果您的ETL工具无法被告知增加并发性,或者您的整个过程中的依赖关系意味着甚至不可能进一步并发,那么如果您有几个这样的进程要运行,请尝试一次运行多个ETL工具的实例。
https://dba.stackexchange.com/questions/60616
复制相似问题