标签归档:exadata X5

Exadata X5-2服务器上扩内存或者更换内存的paper研究

根据Oracle白皮书的记录,Oracle Sun Server X5-2数据库服务器的配置如下: 注意上面: 256GB DDR4-2133 RAM (8x 32GB DIMMS; Memory Expansion kit provides up to 24x 32GB DIMMS in groups of 8) 也就是每台数据库服务器出厂缺省配置是256GB内存(8个32GB DIMM,具体型号是 DDR4-2133 RAM),可以扩展到最大24*32=768GB LRDIMM是较新一代的内存设备,能够保证即使在单条内存32GB容量甚至更高的情况下,服务器上每个内存通道依然能够布满至3条内存条 这里的8组(P0:CHA,CHB,CHC,CHD P1:CHA,CHB,CHC,CHD),也就是每组上面可以最多插入3根内存条,因此一共可插入24跟内存条,每个内存条32GB 具体如下图: 在服务器上如何查看当前内存的使用情况呢: 当前已经插入的内存条有8根,每根都是32GB:32*8=256GB 服务器上每个CPU支持的一对内存模块最多内存容量为192GB(6*32GB): 服务器上每个CPU支持的一对内存模块最多内存插槽为6个: 24*32=768GB,也就是当前系统最大可以插入24根32GB的内存条,也就是最多支持768GB内存: 内存频率是2133: 全部内存信息如下: 具体更换步骤参见 … 继续阅读

发表在 安装和升级 | 标签为 , , | 留下评论

在Exadata X5-2(HC)测试创建31g各类文件和10Tbigfile的效率

本周要使用SwingBench对Exadata X5-2(HC)进行压测,因此,我提前准备了需要的表空间和redo等等。 1,首先看一下创建31g的数据文件的速度: 新增一个31g的数据文件,普通类型的数据文件,大概12秒左右: 对比一下EF550全闪存(可用空间也是20T,Exadata X5-2 QuarterRack也带了20T的闪存): 增加一个31g的临时表空间文件,大概不到20秒: 新增一个31g的undo表空间文件,大概不到30秒: 新增一个system的31g文件,时间比较长,大概不到80秒的样子: 新增一个SYSAUX表空间的文件大概20秒左右: 顺便测试了一下Exadata上创建10T bigfile的效率,具体命令如下: 这个过程执行了大概1小时,也就是在此环境下,创建10T的bigfile需要1小时时间,这个速度我感觉已经超快了: . 首先了解一下,offload和Smart Scan的关系。Offload在很多时候我们可以跟SmartScan理解为一致的东西。 它是指讲处理能力从数据库服务器下移到存储服务器的操作。 这一操作不仅转移了CPU的使用,更主要的是大大减少了返回到数据库层的IO: 1,减少存储系统和数据库服务器之间的传输数据量 2,减少数据库服务器上的CPU使用率(解压缩的操作发生在cell上) 3,减少存储层磁盘读取的时间 . 但是在某些情况下,还有一些其他非SmartScan类型的卸载(offload)操作: 1,智能文件创建(数据块在存储节点上被格式化) 2,Rman增量备份 . 在创建大表空间的时候,我们看到了等待事件“cell smart file creation” 这个正是我们期待看到的,这类IO走智能文件创建(Offload是Exadata的独门武器,而智能文件创建是非Smart Scan类型的一种IO卸载功能)。 整个创建bigtable的时间测算,测试期间,db节点和cell节点的CPU占用都很低: 每秒 6G 每分钟 360G 每小时 20T(既然是每小时20T,那么我的这个10T表空间为什么使用了1小时,而不是30分钟?) … 继续阅读

发表在 POC和性能调整 | 标签为 , | 留下评论

使用Oracle 11.2的DBMS_RESOURCE_MANAGER.CALIBRATE_IO对Exadata X5(HC)进行测试

之前测试的X3的flashcard的IOPS大概是满配200w左右(具体参见 《Exadata上的IOPS和MBPS》) 使用Exadata的calibrate命令测试X5-2的IOPS和MBPS 本次测试的机器是Exadata X5-2: CPU型号: 主机型号: . Oracle 11.2有一个DBMS_RESOURCE_MANAGER.CALIBRATE_IO,可以用来测试磁盘IO。 这里有几个需要注意的地方: 1,DBMS_RESOURCE_MANAGER.CALIBRATE_IO不能并行执行,否则会报错: 2,这个过程的测试,对于基准测试,我个人感觉非常不合适(数值严重偏低……不知道是不是需要调整什么参数,还是Exadata上就不应该用这个测试?) 3,测试中,指定延迟参数时,不能低于10秒(oracle的限制,估计是针对硬盘考虑的) 4,后面监控用的是Oracle已离职员工(凯耀,我的好兄弟)给的mon监控软件(底层基于开源的collect rpm包) 不过在新版本的exadata上貌似脚本还有些问题,因此,有些画图时丢失了(比如IOPS,比如flashcard的图) 5,测试脚本: 这里 102 是磁盘数量,10 是硬盘延迟 102的由来是因为,这个是一个Quarter Rack,使用onecommand安装后,缺省可用102个asmdisk,这个可以查询(V$ASM_DISK)。 下面是本次的测试结果: 这里看到IOPS大概1w多,吞吐量大概每秒3.5GB,最大延迟11秒。 这个数值跟使用mon(凯耀写的)监控的数量差不错: 这里看到磁盘的吞吐量大概每秒3.5GB/s,跟mon监控的差不多 IB的吞吐量大概是3.4GB/s 逻辑硬盘的IOPS是10000左右,跟使用cell上的calibrate的数值差不多 这是执行过程中的一个截图。

发表在 POC和性能调整 | 标签为 , , | 一条评论

使用Exadata的calibrate命令测试X5-2的IOPS和MBPS

之前测试的X3的flashcard的IOPS大概是满配200w左右(具体参见 《Exadata上的IOPS和MBPS》) 使用Oracle 11.2的DBMS_RESOURCE_MANAGER.CALIBRATE_IO对Exadata X5(HC)进行测试 使用Exadata的calibrate命令测试时需要注意: 1,这个不能再业务高峰期操作,否则可能造成应用hang等。 2,一般测试的时候,是把cellsrv进程宕掉,否则就要带-force参数。 3,在老板上上,如果这个命令报错,还有一种可能的原因,就是它需要生成一些临时的lun配置文件,然后自己格式化。 如果报错,可以手工自己删除这些临时的lun文件。 新版本目前没有发发现这类问题,因为Oracle已经修改了脚本,所有的文件生成目录都是带日期的(启动测试的日期)。 因此,不会因为不能格式化lun等信息报错,如图 4,Exadata的calibrate命令底层采用orion的方法,根据自己预定义的lun组合,然后压测N轮 (不同的lun组合,压测好多次,自动的过程,无需手工干预) 5,Exadata的calibrate采用只读方式(保护数据安全) 6,不能再一个cell上并发两个calibrate,否则会报错的。 . 本次测试的机器是Exadata X5-2: CPU型号: 主机型号: 估算flash card的IOPS: 因此,理论上,这台X5-2 quarter rack的flash lun的IOPS总和超过 450万 . 而在之前测试的X3的flashcard的IOPS大概是满配200w左右(具体参见 《Exadata上的IOPS和MBPS》): 满配机器(14个cell)hard disk LUNs的MBPS推算: 1962*14个cell=27468 满配机器(14个cell)flash disk LUNs的MBPS推算: 4184*14个cell=58576 满配机器(14个cell)hard … 继续阅读

发表在 POC和性能调整 | 标签为 , , , , | 留下评论

Exadata上CPU相关的设置(感觉已经很好了,除了irqbalance)

有些情况下,Exadata上我们发现有IO降级的情况,但是检查磁盘和flashcard都没有损坏。 这时候,可能需要检查一下APIC timer功能是否正常(APIC timer没有正确开启可能导致iostat报告的吞吐量有降级的现象) 当发生这类问题时,可以对比vmstat的bi/bo(读和写的平均吞吐量),因为vmstat命令不受APIC timer的影响。 . APIC Timer(Advanced Programmable Interrupt Controller)是一种时钟中断设备,即 高级可编程中断控制器 CPU通过彼此发送中断来完成它们之间的通信,APIC 就是通过编程触发lapic设备周期产生中断,然后注入到vcpu。 2000年以后的CPU都支持,这是Intel多处理规范的核心。 APIC Timer的模式APIC定时器包含3种定时器模式: 周期触发periodic 一次性触发one-shot TSC-Deadline模式(最新的CPU里面支持)。 . 老版本的Exadata可以检查 dmesg|grep “Using local APIC timer interrupts”,来确认APIC timer是否正确开启。 新版本的Exadata可以检查 dmesg|grep “Using IOAPIC for interrupt routing”,来确认APIC timer是否正确开启。 . 例如,下面显示在这个1/4配置的Exadata … 继续阅读

发表在 体系架构 | 标签为 , , , | 留下评论

Exadata上网卡参数的优化(主要是IB的MTU不同于一般值)

对比了一下普通主机和Exadata,发现主要的区别在于组播的配置,这个跟Exadata上使用IB的整个网络环境有关系(Infiniband card,IB Switch等等): MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。 最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等),MTU也不是越大越好,因为MTU越大,传送一个数据包的延迟也越大;并且MTU越大,数据包中 bit位发生错误的概率也越大。因此,需要针对网络來进行最佳化。 MTU的单位是字节。一般来说,如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。 把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。 一般普通的机器缺省配置组播是缺省值1500,这个跟以太网的帧的设计有关系。 以前,Ethernet一般把数据分割为一定大小的帧(frame)的单位来进行传送接收,但在规格上帧的尺寸被定为1,518字节。 但是随着通讯器材的发展,现在的万兆网等都支持大帧(jumbo frames),帧的尺寸根据机器各种各样,大部分对应9,000~16,000字节左右。 . . 要修改MTU的方法很简单(尽管很多人在RAC环境不正确的修改这个值导致了很多问题): ifconfig eth0 mtu xxxx(你需要设置的值),比如: ifconfig eth0 mtu 9000 修改后,使用 netstat -i 或者ifconfig |grep MTU来查看既可以。 目前,Oracle支持在私有网络(interconnect)使用超过1500的组播(具体设置也要根据前面说的,看环境,不是越大越好。通常没有好的设计,一般不改)。 . . 对于多播(MULTICAST),RAC要求必须开启,这个在Oracle官方的最佳实践中有明确说明: 对于多播的检测,Oracle也提供了详细的方法: 类似下面的,就是多播检测失败的情况: . 关于组播,在普通环境(非Exadata)有一些注意事项: 1,一般就采用缺省的1500,如果超过这个值,需要特殊的配置,具体请参考: … 继续阅读

发表在 体系架构 | 标签为 , , | 留下评论

Exadata X5 软件和硬件的新特性概览

Exadata X5的新特性,很有意思,软硬件都有很多改变,个人感觉最突出的硬件改变是X5只有两种磁盘配置: 1,全闪配置(EF) 2,SSD(Flash F160 NVMe PCIe card with 1.6 TB)+4T(HC DISK) 然后就是内存增加,CPU升级等等。。。 下面的信息来源于强大的MOS: Oracle Exadata Database Machine X5-2 Support ……New Exadata X5-2 Database Server . Exadata X5-2 updates the 2-socket database servers to use the latest and fastest Intel … 继续阅读

发表在 性能指标 | 标签为 | 留下评论