缓冲区内存概览

运行会话时,集成服务进程会启动 Data Transformation Manager (DTM)。 DTM 根据会话属性中的“DTM 缓冲区大小”设置在运行时为会话分配缓冲区内存。DTM 根据会话属性的“默认缓冲区块大小”设置中的配置将内存划分为多个缓冲区块。 读取器、转换和写入器线程使用缓冲区块将数据从源移至目标。 缓冲区块大小应大于源或目标中最大数据行的精度。

集成服务为分区中的每个源和目标至少分配两个缓冲区块。 对于 XML 源和目标,缓冲区块数必须至少是源和目标中组数的两倍。 具有未规范化列的 XML 读取器和具有循环引用的 XML 架构可能需要其他缓冲区块。

可以通过调整以下会话属性配置缓冲区内存设置:

1. DTM 缓冲区大小:DTM 缓冲区大小指定了集成服务在 DTM 处理会话时使用的缓冲区内存量。 在会话属性中的“属性”选项卡上配置 DTM 缓冲区大小。

2. 默认缓冲区块大小:缓冲区块大小指定了用于将数据块从源移至目标的缓冲区内存量。 在会话属性中的“配置对象”选项卡上配置缓冲区块大小。集成服务会为缓冲区内存和缓冲区块计算最小内存分配。 默认情况下,集成服务为每个块分配 64,000 字节,或分配映射中任何源或目标的最大行大小(取较大者)。如果 DTM 无法为会话分配配置的缓冲区内存量,则会话无法初始化。 通常,无需为缓冲区内存分配 1 GB 以上的内存量。

可以手动设置缓冲区大小的值,也可以将会话配置为允许集成服务确定会话所需的缓冲区内存大小。

DTM 进程分配给会话的内存量

默认情况下,集成服务在运行时确定 DTM 缓冲区大小。 Workflow Manager 最少为 DTM 缓冲区内存分配 12 MB。可以指定“自动”或一个数字值。 如果您输入 2000,集成服务会将该数字理解为 2000 字节。 为值附加 KB、MB 或 GB 可指定其他单位。 例如,您可以指定 512MB。

在以下情况中,增大 DTM 缓冲区大小:

1. 会话包含大量字符数据并且您将其配置为以 Unicode 模式运行。 将 DTM 缓冲区大小增大到 24MB。

2. 会话包含 n 个分区。 将 DTM 缓冲区大小至少增加到具有一个分区的会话的值的 n 倍。

3. 源包含大型二进制对象,并且精度大于所分配的 DTM 缓冲区大小。 增大 DTM 缓冲区大小,使会话不会失败。

DTM 缓冲区内存

PowerCenter 集成服务可启动 DTM 进程。DTM 根据会话属性中的“DTM 缓冲区大小”设置为会话分配缓冲区内存。默认情况下,PowerCenter 集成服务可计算缓冲区内存大小和缓冲区块大小。

DTM 根据会话属性的“缓冲区块大小”设置中的配置将内存划分为多个缓冲区块。读取器、转换和写入器线程使用缓冲区块将数据从源移至目标。

您可能希望手动配置缓冲区内存和缓冲区块大小。在 Unicode 模式中,PowerCenter 集成服务使用双字节移动字符,因此增加缓冲区内存可能会提高会话性能。

如果 DTM 无法为会话分配配置的缓冲区内存量,则会话无法初始化。Informatica 建议您最多为 DTM 缓冲区内存分配 1 GB。

优化session -> 缓冲区内存

集成服务初始化会话时,会分配内存块以保存源和目标数据。集成服务为每个源和目标分区分配至少两个内存块。使用大量源和目标的会话可能需要更多的内存块。如果集成服务无法分配足够的内存块以保存数据,会话将失败。

您可以配置缓冲区内存量,或者可以将集成服务配置为在运行时计算缓冲区设置。

要增加可用内存块的数量,请调整以下会话属性:

1. DTM 缓冲区大小。在会话属性中的“属性”选项卡上增加 DTM 缓冲区大小。

2. 默认缓冲区块大小。在会话属性中的“配置对象”选项卡上减少缓冲区块大小。

Note: 如果启用了数据分区,DTM 缓冲区大小将是分配给所有分区的所有内存缓冲池的总大小。对于包含 n 个分区的会话,请将“DTM 缓冲区大小”至少设置为具有一个分区的会话的值的 n 倍。

一、增加 DTM 缓冲区大小

DTM 缓冲区大小设置指定集成服务用作 DTM 缓冲区内存的内存量。增加 DTM 缓冲区内存时,集成服务将创建更多缓冲区块,从而在瞬时速度减缓期间提高性能。

增加 DTM 缓冲区内存分配通常会导致性能先提高而后趋平。如果性能未显著提高,则 DTM 缓冲区内存分配不是影响会话性能的因素。

要增加 DTM 缓冲区大小,请打开会话属性,然后单击“属性”选项卡。在“性能”设置中编辑“DTM 缓冲区大小”属性。以缓冲区块大小的倍数增加“DTM 缓冲区大小”属性。

二、优化缓冲区块大小

如果计算机物理内存有限,且会话中的映射包含大量的源、目标或分区,您可能需要减少缓冲区块大小。

如果您正在操作非常大的数据行,增加缓冲区块大小可以提高性能。如果您不知道行的近似大小,请通过完成以下步骤确定行的大小。

三、评估所需的缓冲区块大小:

在 Mapping Designer 中,打开会话的映射。

a.打开目标实例。

b.单击“端口”选项卡。

c.在目标中添加所有列的精度。

d.如果映射中有多个目标,请为每个附加目标重复步骤 2 至 4,以计算每个目标的精度。

e.为映射中的每个源定义重复步骤 2 至 5。

f.选择所有源和目标精度中的最大精度作为缓冲区块大小计算的总精度。

总精度表示移动最大的数据行所需的总字节数。例如,如果总精度等于 33,000,则集成服务需要缓冲区块中的 33,000 个字节来移动该行。如果缓冲区块大小只有 64,000 个字节,则集成服务一次最多只能移动一行。

要设置缓冲区块大小,请打开会话属性并单击“配置对象”选项卡。在“高级”设置中编辑“默认缓冲区块大小”属性。

正如 DTM 缓冲区内存分配一样,增加缓冲区块大小可提高性能。如果性能未提高,则缓冲区块大小不是会话性能的一个因素。

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

总结:

DTM Buffer由DTM Block组成,用于支持Session的读、写线程将数据从源传送到目标的过程。
DTM Buffer是在Session级别管理的,修改 DTM Buffer只对当前Session有效。
双击任意Session--》映射页签--》属性内存,修改属性DTM buffer size和Default buffer block size即可。
DTM buffer size:默认值Auto,由集成服务自动分配(12MB);可调整为32MB、64MB、128MB。Default buffer block size:block size是组成DTM buffer的每个内存的大小。
  调整时机:
   a. 当Session使用Partition时;
   b. 源和目标包括大量的比较长的字符串类型时;
   c. 源和目标包括包括Clob或Blob类型时;
          d. 存在XML源或目标时。
          e. 每个读、写线程最少需要2个block。当1个block不足以存放一行数据时需要调整block size。
调整原则:计算所有的源、目标、转换组件中的单行数据长度,将block size设置为单行数据长度的100倍以上

---MOD_LOTHISTORY源和目标大概精度总和为8400*2=16800byte=16MB,暂调整为32MB

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

资料链接:https://network.informatica.com/message/19942#19942

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

answer1:

For example, you create a session that contains a single partition using a mapping that contains 50 sources and 50 targets. Then, you make the following calculations:

1. You determine that the session requires a minimum of 200 memory blocks:

[(total number of sources + total number of targets)* 2] = (session buffer blocks)

100 * 2 = 200

2. Based on default settings, you determine that you can change the DTM Buffer Size to 15,000,000, or you can change the Default Buffer Block Size to 54,000:

(session Buffer Blocks) = (.9) * (DTM Buffer Size) / (Default Buffer Block Size) * (number ofpartitions)

200 = .9 *14222222 / 64000 * 1                or               200 = .9 * 12000000 /54000 * 1

Note:

For a session that contains

n partitions, set the DTM Buffer Size to at least times the value for the session with one partition. The Log Manager writes a warning message in the session log if the number of memory blocks is so small that it causes performance degradation. The Log Manager writes this warning message even if the number of memory blocks is enough for the session to run successfully. The warning message also gives a suggestion for the proper value.

If you modify the DTM Buffer Size, increase the property by multiples of the buffer block size.

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

answer2:

The easiest way to explain this in my opinion is as such:

go into the mapping and add up all the values from the precision column from ALL your sources and targets. once you get this number (which is the max amount any one record would require for processing), multiply it by 100. The result will be your DTM buffer size in bytes, optimized for 100 records at a time (this is ideal for processing as per the performance guide that Nico was referencing).

With this number, set the DTM Buffer in the session with it, and you should be great. Works wonders on performance. I've reduced a run time from 15 minutes to 30 seconds.


实例:

源和目标相同,源-端口-精度中总精度8184byte,故精度总和为 8184byte*2=16368byte=15.98MB,暂打算调整为32MB,默认是12MB偶尔可能不够用

Informatica优化 - DTM Buffer Size相关推荐

  1. informatica优化

    Contents LookUp. 1 Dynamic Lookup. 2 Session/Wofkflow.. 2 Session/task. 2 参数文件... 3 Variable/Paramet ...

  2. [WARNING] unable to add QUERY_STRING=XXXX to uwsgi packet, consider increasing buffer size

    1. 问题现象 在用 flask uwsgi api 报文发送 GET 请求时,请求参数的 value 值 "XXX" 太长时,会报下面的错误. [WARNING] unable ...

  3. MySQL · 性能优化· InnoDB buffer pool flush策略漫谈

    MySQL · 性能优化· InnoDB buffer pool flush策略漫谈 背景 我们知道InnoDB使用buffer pool来缓存从磁盘读取到内存的数据页.buffer pool通常由数 ...

  4. linux配置内存buffer,调整Linux的网络栈(Buffer Size)来提升网络性能

    注:如需转载,请注明来源,谢谢! 本文基于CENTOS .DEBIAN/UBUNTU 编写 . 我有两台位于不同数据中心的服务器,都用来处理很多并行的大文件传输.但是处理大文件,网络性能非常差.并且涉 ...

  5. UMA Frame Buffer Size 核显显存与CSGO帧率

    UMA Frame Buffer Size 核显显存与CSGO帧率 date: 2022-11-01 lastmod: 2022-11-03 因为经常捣鼓系统重装的引导修复,在 BIOS 设置里看到不 ...

  6. Flume报错:Sinks are likely not keeping up with sources, or the buffer size is too tight

    一.问题描述 flume监控日志,同时,发送到flume监控的avro端口,当大量数据1000万条数据适合,flume监控日志的报错.然后,查看flume监控界面,发现flume监控界面消费突然消失. ...

  7. tensorflow中Dataset.shuffle函数的buffer size的含义解读

    Reference tensorflow - Meaning of buffer_size in Dataset.map , Dataset.prefetch and Dataset.shuffle ...

  8. 将byte数组写进文件,指定buffer size

    2019独角兽企业重金招聘Python工程师标准>>> public void save2File(String filePath, byte[] data) { BufferedO ...

  9. Python音频转成numpy数组:numpy.frombuffer报错ValueError: buffer size must be a multiple of element size

    使用背景:导入音频信号,下面代码段最后一句报错 import wave import numpy as npf = wave.open(wav_path) params = f.getparams() ...

  10. 3、美团开源的leaf-mysql的高并发优化-双buffer缓冲机制

    1.首先注意到SegmentBuffer的segments是一个数组 segments = new Segment[]{new Segment(this),new Segment(this)}; 2. ...

最新文章

  1. 反射 Class类和Class实例
  2. java初反射_初始 java 反射机制 (一)
  3. python中的 set 中的元素
  4. 牛客 华为机试(我的代码记录)
  5. python如何进行格式化输出变量_Python变量格式化输出实现原理解析
  6. 待办事项桌面插件_让浏览器重获整洁——标签页管理插件:OneTabOneTab PlusToby...
  7. Docker存储驱动devicemapper介绍和配置
  8. Spring Boot基础学习笔记:可视化迎新
  9. Packet Tracert 5.0 使用教程
  10. Xcode 高级调试技巧
  11. 爱帮网“搜索+社区”就地展开
  12. win8 怎么桌面计算机图标不见了,win8系统桌面图标不见了怎么办?如何恢复
  13. ad如何自动布线布单层_pcb单层板如何布线_pcb单层板自动布线设置
  14. c语言实型变量允许存放整型数,实型变量允许存放整形数吗
  15. [Xilinx FPGA] #4 Xilinx FPGA 芯片命名规则与查询方法
  16. verilog从txt中读取_将Verilog中的二进制文件数据读入2D数组
  17. 瀑布模型的特点及优缺点
  18. 《江南百景图》为什么火了?和主创团队聊完之后,我跪了
  19. 机器学习水果识别——python+opencv实现物体特征提取
  20. ubuntu 限速 流量监控工具 - iftop

热门文章

  1. iphone帧数测试软件,GFXBench 5.0推出全新测试 苹果A11也只跑17fps
  2. vs2010 正式版官方下载地址
  3. 英语语法笔记--定语从句及同位语从句
  4. 啃书:图像处理的偏微分方程方法(1) —— 数学准备:平面微分几何
  5. 唐太宗李世民14个儿子的可悲结局[高清组图]
  6. paypal支付注意事项
  7. 爬虫 第七讲 MongoDB
  8. PS|如何将Adobe Photoshop(PS)完全卸载
  9. SLAM常见面试题集锦
  10. 多节点什么网络取得技术性突破_中国学者研究“多节点量子网络”取得基础性突破...