BCP慢的问题
原来的系统是 SCO5 sybase11,数据库的设备文件全在阵列上面,由于阵列硬盘和服务器硬盘掉电坏掉,把原来每天以二进制格式BCP出的数据恢复到现新服务器上,新服务器是HPML370G5 系统是REDHAT4UP464位,SYBASE是12.5.4,4G内存。本地四块SAS盘做的RAID5,把原来的备份的二进制文件FTP到新服务器上面,发现小文件恢复的速度还可以,但是大文件特别慢,BCP单个 900M的数据文件要近二十个小时,怎么能够改进一些,表的索引和触发器都以删掉。服务器和sybase 配置参数如下
os
kernel.shmmax =4294967296
sybase
sp_configure "max memory",1300000
go
sp_configure "allocate max shared mem",1
go
sp_cacheconfig "default data cache","1120M"
go
sp_configure "procedure cache size",240000
go
sp_configure "allocate max shared mem",0
go
sp_configure "number of open objects",5000
go
sp_configure "number of pre-allocated extent",20
go
sp_poolconfig "default data cache","80M","4K"
go
sp_poolconfig "default data cache","160M","8K"
go
sp_poolconfig "default data cache","240M","16K"
go
sp_configure "number of open indexes",4000
go
sp_configure "number of devices",25
go
sp_configure "tcp no delay",1
go
sp_configure "number of user connections",250
go
sp_configure "number of locks",90000
go
[ 本帖最后由 wangdonsy 于 2008-3-24 21:56 编辑 ] 数据库是文件系统还是裸设备?
raid5也不应这么慢呀,
bcp 的时候sar -d 看一下系统的IO,手工执行一下dd看一下别的文件操作的IO情况 数据库是文件系统
建1G文件用的时间
# timedd if=/dev/zero of=1 count=1024 bs=1000000
1024+0 records in
1024+0 records out
real 0m3.895s
user 0m0.000s
sys 0m1.791s
# iostat
Linux 2.6.9-42.ELsmp (back) 03/26/2008
avg-cpu:%user %nice %sys %iowait %idle
8.49 0.00 12.36 19.77 59.38
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
cciss/c0d0 136.55 1174.40 1376.85 61358716 71936092
cciss/c0d0p1 0.16 0.33 0.00 16998 4
cciss/c0d0p2 61.74 429.13 478.43 22420478 24996472
cciss/c0d0p3 135.00 699.93 806.19 36569002 42120928
cciss/c0d0p5 5.67 21.03 41.61 1098520 2173896
cciss/c0d0p6 0.39 0.83 0.01 43350 392
cciss/c0d0p7 0.38 0.39 0.00 20292 16
cciss/c0d0p8 0.89 5.09 2.24 266196 117000
cciss/c0d0p9 0.09 0.19 0.01 9930 320
cciss/c0d0p10 0.09 0.19 0.00 9930 0
cciss/c0d0p11 0.09 0.19 0.00 9930 0
cciss/c0d0p12 0.38 0.39 0.00 20292 16
cciss/c0d0p13 6.47 13.01 47.98 679874 2506744
cciss/c0d0p14 0.19 0.38 0.04 19846 2304
cciss/c0d0p15 0.27 3.17 0.34 165614 17984
sar -d 的结果
Average: dev1-0 0.00 0.00 0.00
Average: dev1-1 0.00 0.00 0.00
Average: dev1-2 0.00 0.00 0.00
Average: dev1-3 0.00 0.00 0.00
Average: dev1-4 0.00 0.00 0.00
Average: dev1-5 0.00 0.00 0.00
Average: dev1-6 0.00 0.00 0.00
Average: dev1-7 0.00 0.00 0.00
Average: dev1-8 0.00 0.00 0.00
Average: dev1-9 0.00 0.00 0.00
Average: dev1-10 0.00 0.00 0.00
Average: dev1-11 0.00 0.00 0.00
Average: dev1-12 0.00 0.00 0.00
Average: dev1-13 0.00 0.00 0.00
Average: dev1-14 0.00 0.00 0.00
Average: dev1-15 0.00 0.00 0.00
Average: dev104-0 137.03 1254.59 1360.51
Average: dev9-0 0.00 0.00 0.00
[ 本帖最后由 wangdonsy 于 2008-3-26 13:24 编辑 ] 分两步怀疑,首先是raid的硬件设定,这个首先检查一下
从dd来看,磁盘本身并没有问题。cciss/c0d0p1这个设备名怎么看起来有些不一样?
ASE写入的方式和dd这些还是有差别的,他默认会使用dsync(o_sync)
filesystem device?ext3? rhel 4 + 12.5.4 尝试用1648的traceflag开启directio(bypass fs buffer)看看效果怎么样。
,另外也可以尝试关闭device的dsync测试,如果性能有提高,恐怕就是o_sync对数据库写入的影响了。
另外iostat采样一次对于结果也没有帮助,例如这里看到你的iowait很高。。。,可以在bcp in的时候做更多的采样来判断
页:
[1]