io配置

当你的操作系统使用lvm软件或是硬件条带,那么这些工具就会把io分布开来。在使用lvm或是硬件的时候需要确定2个方面:1条带深度2条带宽度

条带深度是条带的大小,也可以叫做条带单元,条带宽度我的理解就是磁盘的数量

对于oracle数据库系统合理的条带深度是256KB到1MB,不同类型的应用在不同的条带深度中获益,调优条带深度和条带宽度依赖与下面的几个方面:

1要求的io大小

2io请求的并发

3系统的管理性

4物理条带边界和块大小边界的一致

下面是设置io大小的oracle和操纵系统相关参数

ParameterDescription
DB_BLOCK_SIZEThe size of single-block I/O requests. This parameter is also used in combination with multiblock parameters to determine multiblock I/O request size.
OS block sizeDetermines I/O size for redo log and archive log operations.
Maximum OS I/O sizePlaces an upper bound on the size of a single I/O request.
DB_FILE_MULTIBLOCK_READ_COUNTThe maximum I/O size for full table scans is computed by multiplying this parameter withDB_BLOCK_SIZE. (the upper value is subject to operating system limits). If this value is not set explicitly (or is set to 0), the optimizer will use a default value of 8 for this parameter when calculating the maximum I/O size for full table scans.
SORT_AREA_SIZEDetermines I/O sizes and concurrency for sort operations.
HASH_AREA_SIZEDetermines the I/O size for hash operations.

除了io大小,并行度也决定了条带的单元,到选择条带宽度和深度的时候考虑下面的情况:

1在低并发系统中,确保单个io不会访问相同的磁盘2次。例如:假设条带宽度是4个磁盘,条带深度是32k,要是有一个1MB的io请求,那么每块磁盘要有8次的io请求才能返回需要的数据。为了避免这种情况,平均的io应该要小于条带宽度乘以条带深度大小,如果不是这样,oracle的一个io请求就会访问相同的磁盘多次。

2在高并发系统中,确保单个io请求不要被分成多个物理io。如果不这样做,你的系统中就会有很多的物理io请求,这个会严重降低io的响应时间。

io请求的并发

在传统的oltp环境中,通常是保持大的条带单元,使用比io大的条带单元叫粗粒度条带化。在高并发系统中,条带深度可能是

n*db_block_size n是大于1的。

粗粒度的条带允许在阵列中的一个磁盘服务于多个io请求,这样,大量的并发io请求能够被一系列的条带磁盘以最小的代价满足。粗粒度的条带能获得最大的io吞吐量。全表扫描中的多块读能在这种情况下受益,在dss系统中的并行查询也可以使用粗粒度条带。这是因为有很多单独的进程,有单独分开的io,如果粗粒度条带化被用于每月高并发的请求系统,那么会出现热点。

例如在传统的dss环境和低并发的oltp系统中,最好是保持条带单元比较小,这叫细粒度条带化,这样的系统中,条带单元是:

n*db_block_size n是小于db_file_multiblock_read_count的值。细粒度条带化允许单个io请求被多个磁盘服务,细粒度的条带对单独的io请求获取了最大性能。

条带单元设置建议

Table 8-2 Minimum Stripe Depth

Disk AccessMinimum Stripe Depth
Random reads and writesThe minimum stripe depth is twice the Oracle block size.
Sequential readsThe minimum stripe depth is twice the value ofDB_FILE_MULTIBLOCK_READ_COUNT, multiplied by the Oracle block size.

使用lvm,最简单的配置是管理一个包含所有磁盘的条带化的卷。这种情况下,条带宽度包含所有的磁盘,所有的数据库文件存放在哪个卷中,很好的平衡了负载,这种单个卷的布局在大多数的情况下满足了性能要求。
这种单卷的配置只有与raid结合使用是最好的,这样可以恢复。除了性能,设置的系统也要考虑到管理性,比如很容易的添加磁盘。

redo 的放置

大块与小块的优劣

Table 8-3 Block Size Advantages and Disadvantages

Block SizeAdvantagesDisadvantages
SmallerGood for small rows with lots of random access.

Reduces block contention.

Has relatively large space overhead due to metadata (that is, block header).

Not recommended for large rows. There might only be a few rows stored for each block, or worse, row chaining if a single row does not fit into a block,

LargerHas lower overhead, so there is more room to store data.

Permits reading a number of rows into the buffer cache with a single I/O (depending on row size and block size).

Good for sequential access or very large rows (such as LOB data).

Wastes space in the buffer cache, if you are doing random access to small rows and have a large block size. For example, with an 8 KB block size and 50 byte row size, you waste 7,950 bytes in the buffer cache when doing random access.

Not good for index blocks used in an OLTP environment, because they increase block contention on the index 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VSCode PlatformIO 是一种基于 Visual Studio Code 编辑器和 PlatformIO 开发平台的集成开发环境。它可以帮助开发者在一个集成化的环境中进行嵌入式开发,支持多种不同的硬件平台和开发板。以下是 VSCode PlatformIO配置步骤: 1. 安装 VSCode 和 PlatformIO 插件 首先,需要下载和安装 Visual Studio Code 编辑器,然后在扩展市场中安装 PlatformIO 插件。 2. 配置开发板 在 PlatformIO 的主界面中,点击左侧的“Boards”按钮,选择自己使用的开发板,并选择对应的开发环境。可以通过“New Project”按钮创建一个新的项目,或者直接打开已有的项目。 3. 配置编译工具链和调试器 在“PlatformIO Home”中,点击“Platforms”按钮,选择对应的平台,并安装所需的编译工具链和调试器。然后在“PlatformIO IDE”中选择对应的编译工具链和调试器。 4. 配置项目 打开项目文件夹,编辑 platformio.ini 文件来配置项目。这个文件包含了项目的各种设置,比如开发板类型、编译器设置、串口配置等等。 5. 编写代码 使用 VSCode 编辑器编写代码,并保存在项目文件夹中。 6. 编译和上传 使用 PlatformIO 的编译和上传功能来构建和上传代码到开发板。在 VSCode 的左侧菜单栏中选择“PlatformIO IDE”选项卡,在下拉菜单中选择对应的开发环境,在菜单中选择“Build”或“Upload”即可进行编译或上传。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值