首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sybase9,未使用全部系统容量

Sybase9,未使用全部系统容量
EN

Database Administration用户
提问于 2014-03-05 00:11:37
回答 1查看 1.4K关注 0票数 0

SSD I/O容量约为450 is。当我将文件从一个文件夹复制到另一个文件夹时,我可以在中看到,读写速度之和大约为450 in。为什么在执行读取、转换和插入过程时,dbeng9或dbsrv9不会发生同样的情况呢?

这些参数如下:

代码语言:javascript
运行
复制
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,结果没有变化。

EN

回答 1

Database Administration用户

发布于 2014-03-06 12:08:23

有两件事在脑海中闪现:

  • 该进程可以在单个线程上部分绑定CPU。你没有说明你的CPU资源是什么,但是如果你有一个4核的安排,那么它可以是你看到的25%的使用是一个线程之间的核心反弹。类似地,对于8个内核,它可以使用2x并行,因此两个内核的CPU资源价值,占总可用CPU资源的25%。超线程可能会进一步混淆这一点,因为HT公开的虚拟核不能完全执行independently.,在这种情况下,您的CPU是瓶颈,而试图提高操作的并发性可能是解决方案。
  • 流程可能没有有效的流,所以在“读取某物,做某事,写某事”过程中,在“所以某物”阶段将没有磁盘活动。通常,进程不会尝试缓冲I/O来改善这种情况,因为添加额外的缓冲层会带来额外的复杂性(有时是最小的增益),它需要更多的内存,并且对其他并发进程不太友好。与您的文件复制测试相比:“做某事”阶段的there.几乎没有什么用处,再次增加进程的并发性在这里可能有很大帮助。

许多这样的进程仍然被优化为旋转金属,所以它们将避免并发性,在那里它会造成I/O争用,因为使用disc+head驱动器,这可能对性能的损害远大于它的帮助--增加额外的处理线程,增加CPU利用率,但会使磁盘更多地成为一个瓶颈,因为头部重击。对于固态驱动器(特别是读取操作)来说,I/O争用问题要小得多,因为您没有摇头问题,因此可以增加I/O操作的并发性,而不是损害。

如果您的ETL工具无法被告知增加并发性,或者您的整个过程中的依赖关系意味着甚至不可能进一步并发,那么如果您有几个这样的进程要运行,请尝试一次运行多个ETL工具的实例。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/60616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档