系统:windows 内存:64GB
环境:jdk11 代码:
系统:windows 内存:64GB
环境:jdk11 代码:
您好,我们的客户仍在使用较旧的 cache 2016.1 版本,我们这边需要适配 python 作为 client 连接 cache 进行一些操作。 但是查阅相关文档后发现,需要自行编译安装 python 驱动。
我们手头上只有 windows 版本的 cache 安装包,但是我们python适配的环境是 linux。 所以我想找一下是否有 cache 现有的 python 安装包或者 cache linux 安装版本,我自行安装。
谢谢。
** 2018 年 2 月 12 日修订
虽然本文是关于 InterSystems IRIS 的,但它也适用于 Caché、Ensemble 和 HealthShare 发行版。
介绍
内存以页为单位进行管理。 Linux 系统上的默认页面大小为 4KB。 Red Hat Enterprise Linux 6、SUSE Linux Enterprise Server 11 和 Oracle Linux 6 引入了一种根据系统配置提供 2MB 或 1GB 大小的增加页面大小的方法,称为 HugePages。
起初 HugePages 需要在启动时分配,如果管理或计算不当可能会导致资源浪费。因此,各种 Linux 发行版引入了默认启用 2.6.38 内核的Transparent HugePages。这是一种自动创建、管理和使用 HugePages 的方法。以前的内核版本也可能具有此功能,但可能未标记为 [always] 而是设置为 [madvise]。
Transparent Huge Pages (THP) 是一种 Linux 内存管理系统,它通过使用更大的内存页面来减少在具有大量内存的机器上进行Translation Lookaside Buffer (TLB) 查找的开销。然而,在当前的 Linux 版本中,THP 只能映射单个进程的堆栈空间。
InterSystems 产品支持的平台 - 版本更新 (2023 年 2 月
我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架的问题。此更新旨在分享最近的更改以及我们对即将发生的更改的当前决策。(预测未来是一项棘手的工作,不应将此视为我们对未来支持平台和框架的承诺。)
我们计划大约每 3 个月发布一次此类更新,然后在一年内重新评估。如果您觉得此更新有用,请告诉我们!我们很感激您的建议。
关于更新……
InterSystems 纠正了一个可能导致 InterSystems IRIS® 和 Caché 无法在 Windows 上利用大页共享内存的问题,即使这些产品得到的信息是已分配到了大页内存。这会对系统性能产生不利影响。
该问题是由于 Windows 10 中的一个更改引起的,该更改需要 InterSystems IRIS® 和 Caché做相应的修改。请注意,此问题还会影响所有基于 InterSystems IRIS® 或 Caché 的 InterSystems 产品。以下版本的 Windows 会出现此问题:
Windows 10(版本 1703 及以上)
Windows 11
Windows Server 2019
Windows Server 2022
Windows Server 2016 不受影响。
作为参考,此问题的更正标识为 RJF533。此更正将包含在所有未来的 InterSystems IRIS® 和 Caché 发行版中。该更正也作为受支持产品版本的补丁提供。
InterSystems 建议采取以下措施以避免潜在的严重系统性能下降:
irisstat 输出可以立即查看 irisstat 数据(通过终端)或重定向到输出文件以供以后分析。查看数据的最常见方法是:
注意:当 IRIS 被强制关闭时,irisstat 会运行以捕获系统的当前状态。作为紧急关闭程序的一部分,输出被添加到消息日志中。
irisstat 报告可以重定向到文件而不是终端,如果想收集一组 IRIS 工具(诊断报告任务、IRISHung 脚本、^SystemPerformance 实用程序)未提供的一组 irisstat 选项,这可能很有用或者如果在运行这些工具时遇到问题。
诊断报告任务会创建一个包含基本信息和高级信息的 HTML 日志文件,InterSystems 全球响应中心 (WRC) 可以使用该文件来解决系统问题。
注意:诊断报告任务不能在挂起的系统上运行;如果系统挂起,请参阅本附录中的 IRISHung 脚本。
IRISHung 脚本是一个操作系统工具,用于在 IRIS 实例挂起时收集系统数据。位于 install-dir\bin 目录中的脚本名称是特定于平台的,如下表中指定:
irisstat不带选项运行 irisstat 会生成基本报告。通常,运行 irisstat 以获得特定信息。要指定目标信息,可以包括或排除如下选项:
1(或其他级别)。0。例如,要在 irisstat 报告中包含全局文件表 (GFILETA) 部分,请使用 -m1 选项:
C:\iris-install-dir\Bin\irisstat -m1
或者,要关闭默认的基本选项,请使用 -a0 选项:
C:\iris-install-dir\bin\irisstat -a0
许多选项具有比 0 和 1 更详细的级别。这些附加级别被描述为具有“位”,它们以十进制显示为 2 的幂,并控制有关选项的特定类型的信息。例如,显示 PID 表的基本 -p 选项用 1 打开;但是,使用 2 添加 swcheck 列,使用 4 添加 pstate 列。等等。这些位可以组合;例如,如果要查看 2 位和 4 位显示的信息,请指定 -p6。要请求所有位,请使用 -1,如下所示:
bash-3.00$ ./irisstat -p-1
嗨,大家好
在本文中,我列出了 5 个有用的 SQL 函数,并附有解释和查询示例👇🏻
这5个功能是
那么让我们从 COALESCE 函数开始
示例:在Caché的代码中执行shell命令“free -m |grep -i mem”
方法一:使用%Net.Remote.Utility类中的RunCommandViaZF方法
Set tSC = ##class(%Net.Remote.Utility).RunCommandViaZF("free -m |grep -i mem",.tTempFileName,,,0)
set file=##class(%FileCharacterStream).%New()
s file.Filename=tTempFileName获得文件流后,再读取文件流中内容即可。
此方法本质是执行$ZF(-1)方法,由于$ZF(-1)在ENSEBLE2016.2后续的版本中不支持,导致后续版本可能会报错。
方法二:使用$ZF(-100)方法
# 第七十章 使用 REST API 监控 IRIS - 互操作性指标
除了上一节中描述的指标外, IRIS 实例还可以记录有关活动互操作性产品的指标,并将它们包含在 `/metrics` 端点的输出中。默认情况下禁用这些互操作性指标的记录。要启用它,必须为要监控的每个互操作性产品执行以下步骤:
1. 为运行要监控的生产的 `IRIS` 实例打开一个终端会话。如有必要,通过执行以下命令切换到与生产关联的命名空间:
```
set $namespace = "[interopNS]"
```
其中 `[interopNS]` 是命名空间名称。
2. 在终端中,执行以下命令以启用当前命名空间内活动生产的指标收集(`SAM` 指的是系统警报和监控, 监控解决方案):
```
do ##class(Ens.Util.Statistics).EnableSAMForNamespace()
```
注意:如果为命名空间启用了指标记录但相应的生产未激活,则 `/metrics` 端点不会返回任何指标。
`Ens.Util.Statistics` 类提供了自定义 `/metrics` 端点输出的方法。例如,调用方法 `DisableSAMIncludeHostLabel` 将为整个生产提供聚合指标,而不是为每个主机单独提供它们。
完成此步骤后可用的指标在下面的基本互操作性指标表中进行了描述。
# 第六十九章 使用 REST API 监控 IRIS
每个 `IRIS®` 数据平台实例都包含一个提供实例统计信息的 `REST` 接口。 `REST API` 提供了一种从多台运行 `IRIS` 的机器收集信息的方法,使能够详细监控构成您的应用程序的所有实例。
本附录描述了 `/api/monitor` 服务提供的指标。这些指标与开源监控和警报工具 `Prometheus` 兼容。配置 `Prometheus` 以抓取多个连接的 `IRIS` 实例提供了整个系统的内聚视图,从而更容易评估系统是否正常有效地运行。
注意:有关创建和使用 REST 接口的介绍,请参阅第一眼:使用 产品开发 `Rest` 接口。
# /api/monitor Service
`/api/monitor` 服务提供有关运行它的 `IRIS` 实例的信息。默认情况下,`/api/monitor Web` 应用程序启用了“未经身份验证”的访问权限。有关为此服务设置身份验证的信息,请参阅创建 `REST` 服务中的保护 REST 服务一章。
此 API 具有以下两个端点:
- `/metrics Endpoint`,,它返回所有实例指标,并且可以配置为返回特定的应用程序指标。
- `/alerts Endpoint`,它返回自上次抓取端点以来发布的所有系统警报。
SYS.WSMon.Client 类和相关类是一个 IRIS 网络服务客户端,可以在同一个 IRIS 实例或另一个 IRIS 实例中调用 SYS.WSMon.Server 网络服务的方法。
此 Web 客户端类使用以下 LOCATION 参数:
Parameter LOCATION = "http://server:port/csp/sys/SYS.WSMon.Service.cls"
其中,服务器是运行 IRIS 的服务器,端口是 IRIS Web 服务服务器使用的端口。
以与使用其他 IRIS 网络服务客户端相同的方式使用此网络客户端:
Web 客户端类的实例。Location 属性。如果要使用的 SYS.WSMon.Server Web 服务与客户端位于不同的计算机上,或者如果它使用 52773 以外的端口,则这是必需的。
web 方法返回的值。详细信息取决于调用的 Web 方法;请参阅“监视 Web 服务的 Web 方法”部分并查看返回类型的类参考。
下面显示了一个示例终端会话:
对于给定的 IRIS 实例,日志监控 Web 服务可从以下 URL 获得:
http://server:port/csp/sys/SYS.WSMon.Service.cls
其中,服务器是运行 IRIS 的服务器,端口是 IRIS Web 服务服务器使用的端口。例如:
http://localhost:52773/csp/sys/SYS.WSMon.Service.cls
同样,此 Web 服务的 WSDL 可从以下 URL 获得:
http://server:port/csp/sys/SYS.WSMon.Service.cls?WSDL=1
Web 服务的 Web 方法类中的 SYS.WSMon.Service提供以下 Web 方法:
EnumBuffer()method EnumBuffer() as %XML.DataSet
在枚举所有缓冲区大小的统计信息中返回 %XML.DataSet的实例。对于此实例,数据集使用类中 SYS.Stats.Buffer的 Sample() 类查询。
EnumDatabase()method EnumDatabase() as %XML.DataSet
本附录介绍并简要描述了如何使用 IRIS® 数据平台支持 WS-Management 规范,它使能够通过 SOAP 远程监控 IRIS 实例。
按照 WS-Management 规范,SYS.WSMon 包提供了一个 Web 服务,可以使用它来远程监控 IRIS 实例。它在功能上类似于 SNMP 接口(请参阅本指南的“使用 SNMP 监控 IRIS”附录),但使用内置的 IRIS 网络服务支持。
对 WS-Management 的支持包括以下元素:
IRIS 实例信息的方法的日志监控 Web 服务(SYS.WSMon.Service)。IRIS Web 服务客户端(SYS.WSMon.Client),可以调用此监控 Web 服务或另一个 IRIS 实例的监控 Web 服务中的方法。可以创建自己的 Web 客户端,而不是使用此 Web 客户端,可能使用第三方技术。
此 Web 服务和客户端使用几个启用 XML 的类来表示监视信息。
这些类包括 SYS.WSMon.wsEvent,它可以表示事件。
本节介绍如何定义可通过 SNMP 查询的用户应用程序监视器类的示例。应用程序监视器仅包括 SNMP 数据中具有 %Monitor 数据类型的属性。
以下是此示例的示例类:
这两个工具(RanRead 和 RanWrite)用于在数据库(或一对数据库)内生成随机读写事件,以测试每秒输入/输出的操作数 (IOPS)。它们可以一起使用或分开单独使用,以测试 IO 硬件容量、验证目标 IOPS 并确保系统拥有可接受的磁盘响应时间。从 IO 测试中收集的结果将因配置而异,具体取决于 IO 子系统。在运行这些测试之前,请确保相应的操作系统监控和存储级别监控已配置,这些捕获的 IO 性能指标可以为以后的分析提供帮助。我们推荐使用 IRIS 中捆绑的系统性能工具,例如^SystemPerformance。
请注意,这里使用的工具是对先前版本的更新。之前的版本可在这里找到。
应用程序员可以添加托管对象定义并扩展 IRIS 子代理为其提供数据的 MIB。这不是一个完整的 MIB 编辑器或 SNMP 工具包;相反,它是一种添加简单应用程序指标的方法,可以通过 SNMP 浏览或查询这些指标。
注意:对象必须遵循基本的 IRIS SNMP 结构,对 SNMP 表结构的支持有限(仅支持整数值索引),并且不会创建 SNMP 陷阱(请参阅新选项卡类中的 %Monitor.AlertOpens) 对管理信息的 SNMP 结构有一个基本的了解是很有帮助的。
要创建这些对象,请执行以下操作:
%Monitor.Adaptor 的类中创建 IRIS 对象定义。SNMP 类方法以在 SNMP 中启用这些被管理对象,并创建 MIB 定义文件供管理应用程序使用。实现此目的的方法是 MonitorTools.SNMP.CreateMIB()。该方法为 %Monitor 数据库中定义的特定应用程序创建私有企业 MIB 树的一个分支。除了为应用程序创建实际的 MIB 文件之外,该方法还创建了 MIB 树的内部轮廓。 IRIS 子代理使用它来注册 MIB 子树,为 GETNEXT 请求遍历树,并引用特定对象方法以在 GET 请求中收集实例数据。
SNMP 故障排除IRIS 子代理(运行 ^SNMP 例程)取决于操作系统提供的 SNMP 主代理的正确安装和配置。正如 IRIS 作为子代理中所述,^SNMP 例程与此主代理通信有两种主要方式:
^SNMP 主要在 TCP 端口 705 上使用 AgentX 协议。Windows 上,^SNMP 使用安装为 iscsnmp.dll 的 Windows 扩展代理 DLL。操作系统应该提供配置 SNMP 代理的详细说明,系统管理员应该花一些时间来了解如何执行此操作。如果在使 IRIS 与 SNMP 代理通信时遇到问题,以下是一些基本的故障排除指南和提示。
本附录描述了 IRIS 数据平台和 SNMP(简单网络管理协议)之间的接口。 SNMP 是一种通信协议,作为一种管理 TCP/IP 网络(包括单个网络设备和一般计算机设备)的方法已获得广泛接受。它的流行扩大了它作为许多企业管理工具的底层结构和协议的用途。这是它对 IRIS 的主要重要性:一种向各种管理工具提供管理和监控信息的标准方法。
SNMP 既是一种标准消息格式,也是管理对象的一组标准定义。它还提供用于添加自定义管理对象的标准结构,这是 IRIS 用来定义其管理信息以供其他应用程序使用的功能。
SNMP 与 IRIS 结合使用SNMP 定义了客户端-服务器关系,其中客户端(网络管理应用程序)连接到在远程网络设备或计算机系统上执行的服务器程序(称为 SNMP 代理)。客户端请求并从该代理接收信息。有四种基本类型的 SNMP 消息:
GET – 获取特定托管对象的数据GETNEXT – 获取分层树中下一个管理对象的数据,允许系统管理员遍历设备的所有数据SET——为特定的管理对象设置值TRAP——被管理设备或系统发送的异步警报以下是从过程状态维度开始的分析示例。
在此示例中,^PERFSAMPLE 在 319994 个样本中找到了 76755 个处于可样本状态的进程样本(如果选择了忽略空闲的选项,则为非空闲):
本主题介绍 ^PERFSAMPLE 实用程序,这是一种用于分析 IRIS® 数据平台流程的工具。该实用程序处理实时系统上的活动,并呈现采样活动的易于导航的细分,这可以提供对系统的洞察力。例如,可以通过检查 ECP 请求来发现应用程序瓶颈,或者通过查看等待事件的类型来识别整个系统的瓶颈。
要开始,请从感兴趣的 IRIS 实例上的 %SYS 命名空间运行 ^PERFSAMPLE:
USER>set $namespace = "%SYS"
%SYS>do ^PERFSAMPLE
运行^PERFSAMPLE后,立即显示以下消息:
^BLKCOL 监视块冲突当一个进程被迫等待访问一个块时,就会发生块冲突。过多的块冲突会降低应用程序性能。
Using ^BLKCOL在 IRIS® 数据平台中,^BLKCOL 实用程序对指定时间段(默认为 10 秒)内的块碰撞进行采样,记录这段时间内指定时间间隔(默认为 10 毫秒)内的最新块碰撞。对于每个记录的冲突,^BLKCOL 不仅标识块,还标识涉及的全局及其在块中的第一个和最后一个引用,以及创建试图访问块的进程的例程和行。
注意:irisstat -D 选项,如本指南附录“使用 irisstat 实用程序监视 IRIS”中的使用选项运行 irisstat 中所述,也对块冲突进行采样,但仅识别涉及的块。
irisstat -D 的输出包含在 ^SystemPerformance 实用程序生成的报告中,如本指南的使用 ^SystemPerformance 监控性能一章所述。
运行 ^BLKCOL 时,可以指定以下内容:
Application Monitor 执行的 %Monitor.System.HistoryPerf 和 %Monitor.System.HistorySys 类也在每天结束时创建每小时和每天的摘要。摘要被定义为持久类 SYS.History.Hourly 和 SYS.History.Daily;它们包括所有四个基类作为嵌入对象。
对于每个度量属性,系统可以计算每小时和全天的平均值、最大值(高水位线)、标准差、最小值、中值或总数。对于每个基类(SYS.History.PerformanceO、SYS.History.WriteDaemon、SYS.History.SystemUsage 或 SYS.History .Database) 和每个汇总期间类,使用每个基类的 SetSummary() 方法。默认情况下,History Monitor 计算每小时和每日摘要的每个类的平均值、最大值和标准偏差。
注意:SYS.History.Performance 的计数器属性已标准化为这些计算的每秒速率(Total 除外)。
History Monitor 维护性能和系统使用指标的历史数据库。其主要目的是:
该数据库在 SYS.History 类包中定义并保存在 %SYS 命名空间中。数据库结构的所有细节都在那里发布,并且可以通过 SQL 或正常的持久对象访问访问数据。 SYS.History 中的类文档还包含对所有可用的单个属性、方法和查询的描述。
数据通常分为性能(请参阅 SYS.History.Performance)和系统使用情况(请参阅 SYS.History.SystemUsage)数据。性能指标旨在以较短的时间间隔(默认情况下为 30 秒)进行采样,系统使用数据以较长的时间间隔(默认情况下为 5 分钟)进行采样。在每天开始时,将各个时间间隔样本作为平均值、最大值、最小值、标准偏差、中值和总计汇总到每小时和每天的表格中。可以选择为每个度量类保留哪些汇总函数(如果有)。间隔和每小时数据可能会在定义的天数(默认分别为七 (7) 天和 60 天)后自动清除;每日摘要用于长期分析,可以手动清除。
本章介绍 ^mgstat 实用程序,它是一种用于收集基本性能数据的工具。
注意:此实用程序可能会在不同版本之间更新。 ftp://ftp.intersys.com/pub/performance/下载 newmgstat.xml 的信息。
必须从 %SYS 命名空间调用 ^mgstat,并且可以使用以下位置参数:
在上一篇文章中,我们看到了最常用的HL7消息类型之一--ADT(入院、出院、转院)的结构,以及ADT^A04的例子和它所有字段的描述。现在让我们来看看另一个数据流,它与测试订单的订购和履行有关。我说的是ORM(从2.5版本开始,你应该使用特定的消息来订购测试,如OMG、OML、OMD、OMS、OMN、OMI和OMP),ORL和ORU消息。在一个非常简化的情况下,数据的交换可能看起来像这样。
.png)
让我们更详细地看一下这些消息。