文章 Michael Lei · 八月 12, 2021 1m read

我最近看到一个客户问题,是使用 Caché 数据库上运行的病毒扫描程序导致应用程序间歇性变慢和用户响应时间不佳。

出乎意料的是,这是一个常见问题,所以本帖就是提个醒,要将主要 Caché 组件排除在病毒扫描之外。

通常,病毒扫描必须排除 CACHE.DAT 数据库文件和 Caché 二进制文件。 如果防病毒软件扫描 CACHE.DAT 和 InterSystems 文件,那么系统性能_将_受到较大影响。

具体来说,防病毒软件必须排除的 Caché 文件包括:

  • Caché 数据库 (CACHE.DAT)。
  • Ensemble/bin 或 cache/bin 目录中的 Caché 可执行文件。
  • 写入映像日志 (WIJ)。
  • 日志目录中的日志文件。

更多详细信息,请参见在线文档。

更多 Caché 文档

0
0 235
文章 Michael Lei · 七月 27, 2021 8m read

以下步骤展示如何显示 /api/monitor 服务提供的指标列表示例。

在上个帖子中,我概述了以 Prometheus 格式显示 IRIS 指标的服务。 该贴介绍了如何在容器中设置和运行 IRIS 预览版 2019.4,然后列出了指标。


本帖假定您已安装 Docker。 如果未安装,现在就为您的平台安装吧 :)


步骤 1. 下载并运行 docker 形式的 IRIS 预览版

按照预览发行版的下载说明下载预览版许可证密钥IRIS Docker 映像。 例如,我选择了 InterSystems IRIS for Health 2019.4

按照 Docker 容器中的 InterSystems 产品初见中的说明操作。 如果您熟悉容器,请跳转到标题为“下载 InterSystems IRIS Docker 映像”的部分。

以下终端输出说明了我用来加载 docker 映像的过程。 docker load 命令可能需要几分钟的时间才能运行;

$ pwd
/Users/myhome/Downloads/iris_2019.4

$ ls
InterSystems IRIS for Health (Container)_2019.4.0_Docker(Ubuntu)_12-31-2019.ISCkey  irishealth-2019.4.0.379.0-docker.
0
0 369
文章 Michael Lei · 七月 6, 2021 2m read

如果一张图片胜过千言万语,那么一段视频又价值几何? 当然胜过敲一个帖子。

请在 InterSystems Developers YouTube 观看我的“Coding talks”:

1. 使用 Yape 分析 InterSystems IRIS 系统性能。 第 1 部分:安装 Yape

在容器中运行 Yape。

2. Yape 容器 SQLite iostat InterSystems

提取和绘制 pButtons 数据,包括时间范围和 iostat。

0
0 214
文章 Michael Lei · 七月 6, 2021 16m read

供应商或内部团队要求说明如何为 VMware vSphere 上运行的_大型生产数据库_进行 CPU 容量规划。

总的来说,在调整大型生产数据库的 CPU 规模时,有几个简单的最佳做法可以遵循:

  • 为每个物理 CPU 核心规划一个 vCPU。
  • 考虑 NUMA 并按理想情况调整虚拟机规模,以使 CPU 和内存对于 NUMA 节点是本地的。
  • 合理调整虚拟机规模。 仅在需要时才添加 vCPU。

通常,这会引出几个常见问题:

  • 由于使用超线程技术,VMware 创建的虚拟机的 CPU 数量可以是物理 CPU 数量的两倍。 那不就是双倍容量吗? 创建的虚拟机不应该有尽可能多的 CPU 吗?
  • 什么是 NUMA 节点? 我应该在意 NUMA 吗?
  • 虚拟机应该合理调整规模,但我如何知道什么时候合理?

我以下面的示例回答这些问题。 但也要记住,最佳做法并不是一成不变的。 有时需要做出妥协。 例如,大型生产数据库虚拟机很可能不适合 NUMA 节点,但我们会看到,其实是没问题的。 最佳做法是指必须针对应用程序和环境进行评估和验证的准则。

0
0 1050
文章 Michael Lei · 七月 4, 2021 3m read

大家好, 在本文中,我比较了 Gartner 最新DBMS 魔力象限中的主要领先数据库产品的功能。 请见按现有功能数量排序的列表。 1. InterSystems IRIS 2020.3 - 60 个功能 (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls) 2. Oracle Database 21c - 54 个功能 (https://docs.oracle.com/en/database/oracle/oracle-database/index.html) 3. Microsoft SQL Server - 45 个功能 (https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15) 4. AWS Aurora - PostgreSQL - 34 个功能 (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Auror…) 我只比较了功能,未进行任何性能比较(关于此内容,请参见性能测试:https://cn.community.intersystems.

0
0 324
文章 Michael Lei · 七月 4, 2021 9m read

(ECP) Caché 出色的可用性和扩展特性之一是企业缓存协议 (ECP)。 在应用程序开发过程中,如对使用 ECP 的分布式处理加以考虑,可以横向扩展 Caché 应用程序的架构。 应用程序处理可以调整为非常高的速率,处理能力从单个应用程序服务器扩展到最多 255 个应用程序服务器,并且不需要任何应用程序更改。

在我参与的 TrakCare 部署中,ECP 已广泛使用多年。 十年前,主要供应商之一的一台“大型”x86 服务器可能总共只有八个核心。 对于大型部署来说,ECP 是横向扩展商业服务器处理能力的方式,不适合单台昂贵的大型企业服务器。 即使是高核心数的企业服务器也有限制,因此 ECP 也用于扩展这些服务器上的部署。

如今,大多数的新 TrakCare 部署或升级到当前硬件_不需要 ECP_ 即可扩展。 目前的双插槽 x86 生产服务器可以拥有数十个核心和巨大容量的内存。 我们看到,在最近的 Caché 版本中,TrakCare 以及许多其他 Caché 应用程序具有可预测的线性扩展能力,能够随着单台服务器中 CPU 核心数量和内存的增加而支持逐渐增多的用户和事务。 在现场,我看到大多数的新部署都是虚拟化的,即使如此,虚拟机也可以根据需要扩展到主机服务器的规模。 如果资源需求超过单个物理主机可以提供的资源,则使用 ECP 进行横向扩展。

0
0 317
文章 Michael Lei · 六月 27, 2021 1m read

下载网址:

https://hub.docker.com/r/yape/yape/

$ docker container run --rm -v "$(pwd)":/data yape/yape --version
yape 2.2.6
 

在以下网址查看自述文件:

https://github.com/murrayo/yape

更改包括:

  • 恢复配置文件,进行了更多更改使 x 和 y 轴更智能。
  • 更新了配置文件中的线条样式选择。
  • 解决了 yyyy 日期和 yy 日期或退出的问题。 使窗口标题的日期字符串一致(去掉小数位),在标题中添加短日期。 
  • 提高了 y 轴上小于 10 的值的小数精度,例如 Windows 每次读取时间为秒,而不是 linux 中的毫秒
  • 更新 Python 库后的一些小错误修复。

现在,GitHub 和容器保持同步。

0
0 146
文章 Michael Lei · 六月 23, 2021 13m read

部分 Ansible 帮助我解决了快速部署 Caché 和应用程序组件以进行数据平台基准测试的问题。 您可以使用相同的工具和方法来建立您的测试实验室、培训系统、开发或其他环境。 如果在客户站点部署应用程序,可以将大量部署自动化,并确保系统、Caché 和应用程序的配置符合您的应用程序最佳做法标准。

0
1 295
文章 Michael Lei · 六月 23, 2021 3m read

一位客户请求估计使用 cvencrypt 实用工具加密一个数据库需要多久。

这个问题有点像问一根绳子有多长 — 视情况而定。 但这是一个有趣的问题。 答案主要取决于客户使用的目标平台上的 CPU 和存储的性能,因此答案更关乎的是提出一个简单方法,可以在运行 cvencrypt 时使用该方法对 CPU 和存储进行基准测试。

0
0 197
文章 Michael Lei · 六月 23, 2021 3m read

注(2019 年 6 月):许多内容发生了变化,最新的详细信息请参见此处 注(2018 年 9 月):自本帖首次发布以来,内容已经有了很大改动,我建议使用 Docker 容器版本,以容器形式运行的项目以及详细信息仍然在 GitHub 的同一个地址发布,您可以下载、运行并根据需要进行修改。

与客户合作进行性能评估、容量规划和故障排除时,我经常解包和查看来自 pButtons 的 Caché 和操作系统指标。 我不久前发布了一个帖子,介绍了一个用来解包 pButtons 指标的实用工具(该实用工具使用 unix shell、perl 和 awk 脚本编写),而不是费力地浏览 html 文件,再将需要绘制的部分剪切并粘贴到 excel 中。 虽然这是一个有用的省时工具,但还不够完善... 我还使用脚本自动绘制指标图表,以便快速查看并包含在报告中。 但是,这些绘图脚本不容易维护,并且当需要站点特定的配置(例如 iostat 或 Windows perfmon 的磁盘列表)时会变得特别混乱,所以我从未公开发布过绘图实用工具。 不过我现在可以很高兴地说,已经有了简单得多的解决方案。

当我与 Fabian 一起在客户站点查看系统性能时,有了意外发现,他向我展示了使用实用的 Python 绘图模块所做的工作

0
0 288
文章 Michael Lei · 六月 23, 2021 15m read

InterSystems 数据平台包括了用于系统监视和警报的实用程序及工具,但对于不熟悉构建于 InterSystems 数据平台(又名 Caché)的解决方案的系统管理员来说,他们需要知道从何处下手以及需要配置什么。

本指南以在线文档和开发者社区帖子为参考,介绍了实现最低限度的监视和警报解决方案的途径,以及如何启用和配置以下组件:

0
0 286
问题 Michael Lei · 六月 16, 2021

在Ensemble中使用SQL进行批量插入
你好,社区。

我试图在一个表中插入多个值。下面是简单的SQL语句。

插入到表X中

values ('Name', 'Address', 'Phone')

我怎样才能在一条语句中进行多次插入(行)?

数值不在另一个表中,所以我不能使用选择进入。

谢谢。

吉米-克里斯蒂安

Hello Community,

I am trying to insert multiple values in a table. Below is the simple sql statement.

Insert Into TableX

values ('Name', 'Address', 'Phone')

How can i do multiple inserts(rows) in one single statement?

Values are not in another table, so i cannot use Select into.

Thanks,

Jimmy Christian.

1
0 230
文章 Michael Lei · 六月 15, 2021 8m read

本帖概述了通过为 InterSystems 数据平台(InterSystems IRIS、Caché 和 Ensemble)上的数据库磁盘创建 LVM 物理盘区 (PE) 条带来实现低延迟存储 IO 的最佳实践配置,并提供了有用链接。

一致的低延迟存储是获得最佳数据库应用程序性能的关键。 例如,对于在 Linux 上运行的应用程序,经常在数据库磁盘中使用逻辑卷管理器 (LVM) ,因为它能够扩展卷和文件系统,或者为在线备份创建快照。 对于数据库应用程序,在使用 LVM PE 条带化逻辑卷的情况下,并行写入还可提高数据 I/O 的效率,从而有助于提高大规模连续读取和写入的性能。

0
0 514
问题 Michael Lei · 六月 8, 2021

Hi colleagues!

Is there a way to export globals in XML if I have the access to Management Portal or any other web app?

Currently, it gives the option to export into gof format only.

Hi 同事们好!

是否有办法通过管理门户或任何其他的web app以XML的形式导出globals?

目前,它只提供了导出为gof格式的选项。

1
0 240
文章 Michael Lei · 六月 1, 2021 4m read

什么是 Data Fabric?

“这是一套用于在公司中实施、管控、管理和执行数据操作的硬件基础架构、软件、工具和资源,功能包括跨所有数据存储平台的数据采集、转换、存储、分发、整合、复制、可用性、安全性、保护、灾难恢复、演示、分析、保存、保留、备份、恢复、归档、召回、删除、监视和容量规划,并可使应用程序的使用满足公司的数据需求”。 (Alan McSweeney)

Data Fabric 是一种可利用包括多模型数据库、Analytics、AI、ESB/SOA、微服务和 API 管理在内的所有可用资源和技术创新来获取商业价值的新型数据操作方法。

0
0 399
文章 Michael Lei · 五月 24, 2021 1m read

作为一个软件架构师,如果要设计一个企业级的架构来满足当前的业务需求时,你需要达到5级的水平,这是一个巨大的挑战。有了InterSystems IRIS。
这是有可能的。通过1个产品,你可以得到SQL + NoSQL + ESB + BI + Open Analytics + Real Time Virtual cubes + NLP + AutoML + ML(使用Python)和高级云支持 + Sharding支持。

以Oracle为例,你需要Oracle数据库+ Oracle NoSQL+ Oracle BI+ Oracle SOA套件+一些附加组件,如R、Partitioning和RAC以及一些Oracle云产品的NLP和AI功能。对于开源架构、IBM或者其他友商来说,也是类似的,你需要的组件只可能更多。

医疗机构在数字化转型在技术上最大的挑战之一,就是技术栈过于丰富、快速变化以及对人的技术要求很高(这也是为什么全栈工程师最值钱的原因);一个统一、高效、稳定、现代化、专为医疗定制的一体化数据平台能帮助客户很好地解决这个问题。IRIS for Health 是您的不二选择。

0
0 239
问题 Michael Lei · 五月 24, 2021

单位cache2016.2用rose做的双机,数据库放在阵列上,通过rose切换挂载同一个阵列磁盘,本质上是一个实例,另外做了个mirror机。

这样的结构在容灾备份上有什么问题没,希望给点建议。谢谢

1
0 245
问题 Michael Lei · 五月 24, 2021

您好,我想问一下为什么我无法通过Iris中的内置转换模板将从HAPI-FHIR服务器下载的患者资源转换为SDA格式。它总是表明缺少某个默认值,或者这就是我们需要更改格式吗?我想问一下我们如何快速创建自己的映射,以及如何通过json将所需的数据转换为sda并将其存储在iris中,然后我们可以通过齐柏林飞艇进行调用,非常感谢您解决我的问题问题

1
0 220
文章 Michael Lei · 五月 24, 2021 3m read

本帖的目的是回答一个问题。 在本系列的第二篇帖子中,我包括了从 pButtons 提取的性能数据的图表。 有人在线下问我,有没有比剪切/粘贴更快的方法从 pButtons .html文件中提取 mgstat 等指标,以便在 Excel 中绘图。

参见:- 第 2 部分 - 研究收集的指标

pButtons 将其收集的数据编译成一个 html 文件,以便发送给 WRC 和查看整理的数据。 不过,尤其是对于长时间(如 24 小时)进行收集的 pButtons 来说,一些基于时间的数据(如 mgstat、vmstat 等)以图形方式查看更容易查找趋势或模式。

0
0 233
文章 Michael Lei · 五月 24, 2021 2m read

我本人和其他技术架构师经常需要向客户和供应商说明 Caché IO 要求以及 Caché 应用程序使用存储系统的方式。 在向客户和供应商说明典型的 Caché IO 配置文件和事务性数据库应用程序的要求时,下面的表格很有用。  原始表格由 Mark Bolinsky 创建。

在以后的帖子中,我将讨论更多关于存储 IO 的内容,所以现在贴上这些表格也作为将来文章的参考。 

0
0 257
文章 Michael Lei · 五月 24, 2021 7m read

您的应用程序已部署,一切运行正常。 很好,击个掌! 然后电话突然响个不停 – 用户投诉应用程序有时很“慢”。 这是什么意思? 有时? 您有哪些工具,查找和解决这个缓慢问题应查看哪些统计数据? 您的系统基础架构是否能承担用户负载的任务? 在投入生产之前,应该询问哪些基础架构设计问题? 如何自信地为新硬件规划容量,而不会过度规定? 如何停止电话铃声? 如何一开始就不让它响?

0
1 273
问题 Michael Lei · 五月 18, 2021

我可以从AIX命令行提示符运行以下命令,而不会出现任何问题

-bash-2.05b$ echo t
t
-bash-2.05b$ echo œ
œ

当我从内部Cache调用时,我遇到了问题。

USER>D $ZF(-1,"echo t")
t

USER>D $ZF(-1,"echo œ")

D $ZF(-1,"echo œ")
^
<TRANSLATE>

我正在使用Cache 2017.2。有人可以帮忙吗?

谢谢你。

1
0 225
问题 Michael Lei · 五月 18, 2021

大家好,

我目前正在开发TCP入站服务,以读取从使用EnsLib.TCP.CountedOutboundAdapter的TCP操作发送的一些XML。

1)我尝试过EnsLib.TCP.Inbound适配器,但是会出现此错误:

错误<Ens> ErrException:<METHOD不存在> zinitConfig + 7 ^ Ens.Host.1 *%New,EnsLib.TCP.InboundAdapter-登录为'-'
数字 - @'
设置..Adapter = $ classmethod(..#ADAPTER,“%New”)'

因此,适配器无法开始侦听传入的连接。

2)当我改用EnsLib.TCP.CountedXMLInboundAdapter或EnsLib.TCP.CountedInboundAdapter时,适配器开始侦听给定的端口,但OnProcessinput()方法未在pInput流中接收任何数据。流始终为空,并在事件日志中引发此错误。

错误<Ens> ErrTCPReadBlockSize:超时时间为(5)的TCP Read(32000)失败,错误如下:(1144):l version =“ 1.0” encoding =“ UTF-8”?

1
0 242