• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >sybase > RedHat AS上Sybase ASE和Oracle的ASYNC IO差异与性能影响

RedHat AS上Sybase ASE和Oracle的ASYNC IO差异与性能影响

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了sybase ase,sybase ase 15.7,sybase ase下载,sybase ase 16,sybase ase12.5等相关知识,希望本文的分享对您有所帮助
</div>  以Redhat AS 3.0的async io做范例来讨论异步IO对性能的影响以及Sybase ASE(单进程多线程)和Oracle(大型网站数据库平台)(多线程)架构对异步IO不同的处理。以及OS参数对Sybase ASE的性能影响....

 以Redhat AS 3.0的async io做范例来讨论异步IO对性能的影响以及Sybase ASE(单进程多线程)和Oracle(大型网站数据库平台)(多线程)架构对异步IO不同的处理。以及OS参数对Sybase ASE的性能影响。

OS kernel: 2.4.21-4.EL

glibc: glibc-2.3.2-95.3

DB: Adaptive Server Enterprise/12.5.1/EBF 11666 ESD#2

Oracle(大型网站数据库平台)9i Enterprise Edition Release 9.2.0.4.0

OS Parameter: /proc/sys/fs/aio-max-size 每一次异步IO的最大尺寸

/proc/slabinfo 内核slab 分配统计



一: async io能够在以下方面提升性能

一: IO队列不需要等待所以磁盘可以对零散的IO进行组织以相对次数较少的io以提升性能。(吞吐量的提升)

二:进程可在等待IO完成前执行另外的任务以提升性能。(响应时间的改善)



二: OS相关文件

/proc/slabinfo: kio开头的字段显示是否有应用在使用及使用状况。

此时ASE & Oracle(大型网站数据库平台)都没有启动,所以当前活动对象数目都是0

[root@VMRHAS proc]# grep kio slabinfo

kioctx 0 30 128 0 1 1 (kio请求次数)

kiocb 0 8220 128 0 274 1(kio的对象数目)

kiobuf 0 30 128 0 1 1(kio buffer)

各列的含义:

slab缓存名 当前活动对象数目 可活动对象的总数 每一个对象的字节数 最后一个活动对象的页数 总共分配的页数 每slab缓存的页数



启动Oracle(大型网站数据库平台) 后的slabinfo信息

[root@VMRHAS root]# su - Oracle(大型网站数据库平台) -c dbstart

[root@VMRHAS proc]# grep kio slabinfo

kioctx 6 30 128 1 1 1

kiocb 6144 8220 128 205 274 1

kiobuf 0 30 128 0 1 1

察看Oracle(大型网站数据库平台)进程,在启动后有6个Oracle(大型网站数据库平台)的系统进程

[root@VMRHAS proc]# ps -ef |grep ora_

Oracle(大型网站数据库平台) 2683 1 0 11:06 ? 00:00:00 ora_pmon_redhat

Oracle(大型网站数据库平台) 2685 1 0 11:06 ? 00:00:00 ora_dbw0_redhat

Oracle(大型网站数据库平台) 2687 1 0 11:06 ? 00:00:00 ora_lgwr_redhat

Oracle(大型网站数据库平台) 2689 1 0 11:06 ? 00:00:00 ora_ckpt_redhat

Oracle(大型网站数据库平台) 2691 1 0 11:06 ? 00:00:00 ora_smon_redhat

Oracle(大型网站数据库平台) 2693 1 0 11:06 ? 00:00:00 ora_reco_redhat

从windows连接一个Oracle(大型网站数据库平台)进程过去再看slabinfo和linux上Oracle(大型网站数据库平台)进程的改变情况

c:\>sqlplus "dbo/dbo@vmrhas"

SQL*Plus: Release 9.0.1.0.1 - Production on 星期三 11月 10 11:10:30 2004

(c) Copyright 2001 Oracle(大型网站数据库平台) Corporation. All rights reserved.

连接到:

Oracle(大型网站数据库平台)9i Enterprise Edition Release 9.2.0.4.0 - Production

With the Partitioning, OLAP and Oracle(大型网站数据库平台) Data Mining options

JServer Release 9.2.0.4.0 - Production

SQL> select count(1) from v$session;

COUNT(1)

----------

7

[root@VMRHAS proc]# grep kio slabinfo

kioctx 7 30 128 1 1 1

kiocb 7168 8220 128 239 274 1

kiobuf 0 30 128 0 1 1



下面的pid为2740的进程就是windows连接的进程

[root@VMRHAS proc]# ps -ef |grep ora

Oracle(大型网站数据库平台) 2465 1 0 10:49 pts/2 00:00:00 /opt/Oracle(大型网站数据库平台)/product/9.2.0/bin/tnslsnr LISTENER -inherit

Oracle(大型网站数据库平台) 2683 1 0 11:06 ? 00:00:00 ora_pmon_redhat

Oracle(大型网站数据库平台) 2685 1 0 11:06 ? 00:00:00 ora_dbw0_redhat

Oracle(大型网站数据库平台) 2687 1 0 11:06 ? 00:00:00 ora_lgwr_redhat

Oracle(大型网站数据库平台) 2689 1 0 11:06 ? 00:00:00 ora_ckpt_redhat

Oracle(大型网站数据库平台) 2691 1 0 11:06 ? 00:00:00 ora_smon_redhat

Oracle(大型网站数据库平台) 2693 1 0 11:06 ? 00:00:00 ora_reco_redhat

Oracle(大型网站数据库平台) 2729 1 0 11:10 pts/2 00:00:00 Oracle(大型网站数据库平台)redhat (LOCAL=NO)

root 2740 1749 0 11:11 pts/0 00:00:00 grep ora



shutdown Oracle(大型网站数据库平台),再来看ASE的情况

启动ASE

[root@VMRHAS proc]# su - sybase -c asestart

[root@VMRHAS proc]# grep kio slabinfo

kioctx 1 30 128 1 1 1

kiocb 1024 8220 128 35 274 1

kiobuf 0 30 128 0 1 1



从windows建立一个sybase的连接过去

c:\>isql -Usa -Svmrhas

Password:

1> sp_who

2> go

fid spid status loginame origname hostname blk_spid

dbname cmd block_xloid

------ ------ ------------ ------------ ------------ ---------- --------

---------- ---------------- -----------

0 2 sleeping NULL NULL 0

master DEADLOCK TUNE 0

0 3 sleeping NULL NULL 0

master MIRROR HANDLER 0

0 4 sleeping NULL NULL 0

master ASTC HANDLER 0

0 5 sleeping NULL NULL 0

master CHECKPOINT SLEEP 0

0 6 sleeping NULL NULL 0

master HK WASH 0

0 7 sleeping NULL NULL 0

master HK GC 0

0 8 sleeping NULL NULL 0

master HK CHORES 0

0 9 sleeping NULL NULL 0

master PORT MANAGER 0

0 10 sleeping NULL NULL 0

master NETWORK HANDLER 0

0 11 sleeping NULL NULL 0

master NETWORK HANDLER 0

0 15 running sa sa Test 0

master SELECT 0

(11 rows affected)

(return status = 0)

可以看到只有一个spid为15的用户进程,其余都是系统进程。

此时再看slabinfo

[root@VMRHAS proc]# grep kio slabinfo

kioctx 1 30 128 1 1 1

kiocb 1024 8220 128 35 274 1

kiobuf 0 30 128 0 1 1

当关闭ASE的异步IO

c:\>isql -Usa -Svmrhas

Password:

1> sp_configure 'allow sql server(WINDOWS平台上强大的数据库平台)'

2> go

Parameter Name Default Memory Used Config Value

Run Value Unit Type

------------------------------ ----------- ----------- ------------

----------- -------------------- ----------

allow sql server(WINDOWS平台上强大的数据库平台) async i/o 1 0 0

0 switch static

(1 row affected)

(return status = 0)

此时kioctx,kiocb都等于0

[root@VMRHAS proc]# grep kio slabinfo

kioctx 0 30 128 0 1 1

kiocb 0 1050 128 0 35 1

kiobuf 0 0 128 0 0 1





从上面的这些输出可以看出Oracle(大型网站数据库平台)是一个多进程架构,即一个数据库连接会产生一个os的进程。如果开启了异步IO,可以看到每一个进程会打开1024 个async IO的对象。而ASE是单进程多线程架构,即不管多少用户连接在OS上只会有一个dataserver的进程(SMP不在考虑之列,即多少个engine 会有多少个dataserver的进程)。ASE不管多少用户进程都是一个dataserver进程打开1024个异步IO对象。ASE的引擎结构决定了由dataserver进程管理自己的network, disk IO和线程间通信资源,减少开销。

观察异步IO是否启用可以看kiocb的打开的异步IO对象数目,如果其为0代表没有启用。

关于slabinfo ,aio的详情如果安装了linux的source code的话,可以在/usr/src/linux-x.x/目录下看看aio.c和slab.c 或者man slabinfo。



/proc/sys/fs/aio-max-size

[root@VMRHAS proc]# cat sys/fs/aio-max-size

131072

更改aio-max-size的方法:echo xxx >/proc/sys/fs/aio-max-size 或编辑/etc/sysctl.conf,添加一行fs.aio-max-size = xxx 然后sysctl –p



三:数据库参数

Oracle(大型网站数据库平台) default 是关闭异步IO的。

开启: make -f ins_rdbms.mk async_on

make -f ins_rdbms.mk iOracle(大型网站数据库平台)

参数: disk_asynch_io=true(default true)

filesystemio_options=asynch( default none)



ASE: default 开启

参数: allow sql server(WINDOWS平台上强

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何单独在备份机上启动Sybase ASE12.5
  • 自动生成SYBASE ASE的bcp脚本
  • ASE12.5 for Linux的安装问题
  • 如何使用Sybase ASE数据库的扩展存储过程
  • 在Sybase ASE中使用Passthrough
  • RedHat AS上Sybase ASE和Oracle的ASYNC IO差异与性能影响

相关文章

  • 2017-06-28Sybase海量数据存储、访问及管理简介
  • 2017-06-28DXP电子政务信息交换平台
  • 2017-06-28Sybase数据库乱码问题的解决方法
  • 2017-06-28Sybase与Oracle的十二场性能比拼
  • 2017-06-28Sybase批量操作(BCP)的设计和实现
  • 2017-06-28三层应用的核心----EAServer
  • 2017-06-28巧妙设置Sybase用户权限来处理进程
  • 2017-06-28dbcc memusage确定Procedure Cache Size
  • 2017-06-28C/S体系中设置工作站与服务器时钟同步
  • 2017-06-28Sybase EA Server 在网上税务系统中的应用

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 数据库安全管理概述
    • 巧妙设置Sybase用户权限来处理进程
    • Sybase的数据操纵语言
    • 有关Sybase系统的数据同步与复制问题
    • 关于数据库中有numeric数据类型的字段出现跳号的问题
    • 在Windows NT上手动卸载Sybase Server
    • Sybase数据库在四川GPRS系统中的应用
    • Sybase铸造电信信息之门
    • 详细讲述Sybase数据库的安全性控制策略
    • Sybase应用案例:中石化销售管理系统

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有