如将mirror主机转为生产机:详细操作步骤或命令
Caché 网络实用工具
第一章 发送HTTP请求☆☆☆☆☆
第二章 设置和获取HTTP标头☆☆☆☆☆
第三章 发送HTTP请求☆☆☆☆☆
第四章 收发电子邮件☆
第五章 向邮件添加附件☆
第六章 从POP3服务器提取电子邮件☆
第七章 从POP3服务器提取电子邮件☆
第八章 处理收到的电子邮件☆
第九章 创建、编写和阅读MIME邮件☆
第十章 使用FTP☆☆☆☆☆
第十一章 发送和接收IBM WebSphere MQ消息☆
第十二章 IBM WebSphere MQ检索邮件☆
第十三章 使用SSH☆
第十四章 其他InterSystems %Net工具☆☆☆
第十五章 Caché WebSocket☆☆☆
前言
手册帮助程序员使用%Net包中的一些关键类,这些类为许多有用的Internet协议提供了易于使用的接口。因为这个包的类文档相当广泛,所以本手册提供了一个快速、有条理的概述,而不是深入研究每个参数、属性和方法。熟悉本手册中提到的协议和第三方工具。
预告
下一期系列将用一个月的时间连载,《Caché XML》,敬请期待。
交流群
- QQ群号:410039091
- 笔者QQ:454115408
- 公众号:技术理科直男
- intersys版主:姚鑫
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9VqwzNP-1608850948003)(3E1D939266954ED48BDAEA9B8086B11E)]](https://img-blog.csdnimg.cn/20201225070433434.png)
大型免费课程,进群410039091获取课程目录
- 适合所有阶段程序员,总有一款你遗漏的知识点!

第七章 Caché JSON %JSON快速参考
%JSON快速参考
本节提供本章中讨论的%JSON方法、属性和参数的快速参考。
%JSON.Adaptor方法
这些方法提供了从JSON序列化和序列化到JSON的能力。
%JSONExport()
%JSON.Adaptor.%JSONExport()将启用JSON的类序列化为JSON文档,并将其写入当前设备。
method %JSONExport(%mappingName As %String = "") as %Status
%mappingName(可选)-要用于导出的映射的名称。基本映射由"" 表示,并且是默认映射。
%JSONExportToStream()
%JSON.Adaptor.%JSONExportToStream()将启用`JSON的类序列化为JSON文档并将其写入流。
method %JSONExportToStream(ByRef export As %Stream.Object,
%mappingName As %String = "") as %Status
export- 包含序列化的JSON文档的导出流。%mappingName(可选)-要用于导出的映射的名称。基本映射由""表示,并且是默认映射。
%JSONExportToString()
%JSON.Adaptor.
第六章 Caché JSON 使用JSON适配器
JSON适配器是一种将ObjectScript对象(registered, serial or persistent)映射到JSON文本或动态实体的方法。本章涵盖以下主题:
- 导出和导入-介绍启用
JSON的对象并演示%JSON.Adaptor导入和导出方法 - 带参数映射-描述控制如何将对象属性转换为
JSON字段的属性参数。 - 使用扩展数据映射块-介绍将多个参数映射应用到单个类的方法。
- 格式化
JSON-演示如何使用%JSON.ForMatter格式化JSON字符串。 %JSON快速参考-提供本章中讨论的每个%JSON类成员的简要说明。
Exporting and Importing
从JSON序列化或序列化到JSON的任何类都需要子类%JSON.Adaptor,它包括以下方法:
%JSONExport()将启用JSON的类序列化为JSON文档,并将其写入当前设备。%JSONExportToStream()将启用JSON的类序列化为JSON文档并将其写入流。%JSONExportToString()将启用JSON的类序列化为JSON文档并将其作为字符串返回。%JSONImport()将JSON作为字符串或流导入,或者作为%DynamicAbstractObject的子类导入,并返回启用JSON的类的实例。
之所以称为Dynamic,是说这个对象在代码编译的时候可以不定义对象的属性和结构,在runtime时才根据装入的数据来产生对象定义。IRIS里用Dynamic Object来处理JSON数据。简单说: 先定义一个Dynamic Object, 把JSON数据装进去,然后用对象的方式处理JSON文档。
让我们看看是它是怎么工作的。
创建一个Dynamic Object很简单, 标准而且啰嗦的写法是:
set dynObject1 = ##class(%DynamicObject).%New()
大家通常用简单的写法,像这样用一个{}来定义Dynamic Object:
DEMO>set dynObject1 = {}
DEMO>zw dynObject1
dynObject1={} ;
字符串,流到DynamicObject的导入导出
把JSON数据从字符串或者流导入DynamicObject被称作Deserializing;反之,把DynamicObject里的JSON导出来到String或者Stream叫Serializing。在类%DynmicObject中用的是%FromJSON()和%ToJSON()两个方法,一个是类方法,一个是实例方法:
//从字符串,流里导入数据到%DynmicObject。 第十五章 Caché WebSocket
使用WebSockets (RFC 6455)
web是围绕请求/响应范例构建的:客户机向服务器发送请求,服务器通过向客户机发送响应进行响应。此范式和HTTP本身不允许此通信协议的反向形式,即服务器与客户机启动请求/响应周期。已经开发了许多技术来解决了这个问题,即服务器可以启动与客户机的对话。这些技术通常被称为基于推送或 comet-based的技术,它们都存在不适合在web基础设施上进行全面部署的问题。目前使用的三种主要技术如下所述。
Short Polling 短轮询
使用这种技术,客户端定期发送HTTP请求来检测服务器状态的变化,服务器被编程为立即响应。空响应表示没有变化。
问题:
- 轮询频率(和响应能力)受到客户机可以容忍的刷新延迟的限制。
- 每个请求都是一个完整的
HTTP请求/响应往返过程,这会导致大量的HTTP流量,而这又会给服务器和网络基础设施带来无法接受的负担 - 每个消息交换都承载着
HTTP协议的开销,如果消息大小超过了最大传输单元(MTU)(通常是以太网的1500字节),则会特别繁重。
Long Polling 长轮询
使用这种技术,客户端发送HTTP请求,但服务器只在需要通知客户端更改时才响应。客户端通常在服务器发送响应消息时发送另一个“长轮询”请求。
第十四章 其他InterSystems %Net工具
下面是%Net中其他一些有用类的简短列表:
%Net.URLParser
InterSystems IRIS提供了一个实用程序类%Net.URLParser,可以使用它将URL字符串解析为其组成部分。例如,当您重定向HTTP请求时,这很有用。
该类包含一个类方法Parse(),它接受一个包含URL值的字符串,并通过引用返回一个包含URL各部分的数组。例如:
/// w ##class(PHA.TEST.HTTP).URLParser()
ClassMethod URLParser()
{
Set url = "https://www.google.com/search?q=Java+site%3Adocs.intersystems.com&oq=Java+site%3Adocs.intersystems.com"
Do ##class(%Net.URLParser).Parse(url,.components)
zw components
}
DHC-APP>w ##class(PHA.TEST.HTTP).URLParser()
components("fragment")=""
components("host")="www.google.com"
components("netloc")="www.google.InterSystems产品有四种备份方法:
(1) 外部备份
(2) 在线备份
(3) 冷备份
(4) 传统的并行外部备份
有关这些方法的细节请参考在线文档 https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.U…
以下是对每种备份方法的简要描述:
(1) 外部备份
外部备份是InterSystems推荐的最佳备份方式。
外部备份一般是对数据库文件所在的存储创建快照的方式来实现。
创建快照可以在多个层面进行,例如存储层面,操作系统层面,等等,因此这些相关技术和工具一般由第三方来提供。
在做快照前,一定要先停止对数据库文件的写入(InterSystems IRIS的IRIS.DAT,Caché/Ensemble的CACHE.DAT)。但是用户进程可以继续对内存进行更新,而不需要中断。
InterSystems提供了停止对数据库文件写入的方法,用户可以把这个加入到快照工具的脚本里。
外部备份一般包括以下几步:
1. 使用Backup.General.ExternalFreeze()方法来停止对数据库文件的写入。
2. 使用第三方快照工具来对文件系统创建快照。
3. 使用Backup.General.ExternalThaw()方法来恢复对数据库文件的写入。
4.
第十三章 使用SSH
%Net.SSH软件包支持SSH(安全外壳)通信。本主题简要介绍此包中的类。
创建SSH会话
%Net.SSH.Session表示SSH会话。要使用此类,请执行以下操作:
- 创建类的实例。
- 使用
Connect()实例方法连接到服务器。 - 使用
AuthenticateWithKeyPair()或AuthenticateWithUsername()向服务器验证身份。 - 使用
%Net.SSH.Session的其他方法执行进出远程系统的单个文件的SCP(安全复制)操作、执行远程命令、传输TCP通信或执行SFTP操作。
例如,使用SFTP将会话用于SFTP操作。此方法通过引用返回可用于SFTP操作的%Net.SSH.SFTP实例。
重要提示:有关可以使用这些类的受支持平台的信息,请参阅%Net.SSH.Session和%Net.SSH.SFTP的类参考。
示例:通过SFTP列出文件
以下方法显示了如何通过SFTP在服务器上写入文件列表:
Method SFTPDir(ftpserver, username, password) As %Status
{
set ssh = ##class(%Net.SSH.Session).%New()
do ssh.Connect(ftpserver)
do ssh.什么是 Data Fabric?
“这是一套用于在公司中实施、管控、管理和执行数据操作的硬件基础架构、软件、工具和资源,功能包括跨所有数据存储平台的数据采集、转换、存储、分发、整合、复制、可用性、安全性、保护、灾难恢复、演示、分析、保存、保留、备份、恢复、归档、召回、删除、监视和容量规划,并可使应用程序的使用满足公司的数据需求”。 (Alan McSweeney)
Data Fabric 是一种可利用包括多模型数据库、Analytics、AI、ESB/SOA、微服务和 API 管理在内的所有可用资源和技术创新来获取商业价值的新型数据操作方法。
按照此网址的指示 https://gettingstarted.intersystems.com/language-quickstarts/java-quick… 下载quickstarts-java示例代码 运行xepplaystocktsTask1模块程序提示InterSystems XEP is not supported by the specified server 请问有人知道具体原因吗我的server有什么不对吗。
使用客户端的server manager添加server没有server类型的选项,是因为我使用的cache版本目前不支持吗
第十二章 IBM WebSphere MQ检索邮件
检索邮件
要检索邮件,请执行以下操作:
- 按照“创建连接对象”中的说明创建连接对象。在这种情况下,请创建
%Net.MQRecv的实例。Connection对象有一个消息队列,可以从中检索消息。 - 根据需要调用以下方法:
%Get()-通过引用返回字符串消息作为第一个参数。%GetStream()-给定初始化的文件字符流,此方法从队列中检索消息,并将其放入与该流关联的文件中。请注意,必须设置流的Filename属性才能对其进行初始化。不支持二进制流。
- 检查调用的方法返回的值。请参阅“获取错误代码”。请记住,当队列为空时,IBM
WebSphere MQ返回2033。 - 检索完消息后,调用
Connection对象的%Close()方法以释放动态链接库的句柄。
示例1:ReceiveString()
下面的类方法从mqtest队列检索消息。
///Method returns string or null or error message
ClassMethod ReceiveString() As %String
{
Set recv=##class(%Net.MQRecv).HealthConnect中创建HTTP服务端
这里我说说怎么在HealthConnect上开发HTTP服务。
作为消息引擎,HealthConnect会需要从一个接口接收HTTP请求发送到另一个接口,中间做消息转换,路由等等,目的的接口可能是HTTP,或者SOAP,REST等等。这里只介绍HTTP服务的内容,也就是最简单的两种实现:
第一种:实现客户定制的HTTP服务业务服务组件(Business Servie)
创建Business Service类,继承EnsLib.HTTP.Service, 如下面的示例:
Class SEDemo.IO.HTTP.ServiceExample1 Extends EnsLib.HTTP.Service
{
Parameter ADAPTER;
Method OnProcessInput(pInput As %Stream.Object, Output pOutput As %Stream.Object) As %Status
{
//创建Ensemble消息发送给其他组件
set pRequest=##class(Ens.StreamContainer).%New()
Set tSC=pRequest.StreamSet(pInput)
set tSC= .本文主要总结了在InterSystems IRIS 中如何保存、查询List类型数据
假设我们设计的对象中包含姓名,同时每个姓名下可以包含多个电话。我们可以使用下面方法进行处理。
1. 传统方式
我们可以把每一个姓名和电话放在不同列中。
Class Test.Person Extends %Persistent
{
Property Name As %String;
Property Phone As %String;
}我们使用SQL语句插入数据:
insert into Test.Person values ('a','111-111-1111');
insert into Test.Person values ('b','222-111-1111');
insert into Test.Person values ('a','111-222-1111');
insert into Test.Person values ('c','333-111-1111');
insert into Test.您好,我想问一下为什么我无法通过Iris中的内置转换模板将从HAPI-FHIR服务器下载的患者资源转换为SDA格式。它总是表明缺少某个默认值,或者这就是我们需要更改格式吗?我想问一下我们如何快速创建自己的映射,以及如何通过json将所需的数据转换为sda并将其存储在iris中,然后我们可以通过齐柏林飞艇进行调用,非常感谢您解决我的问题问题
第十一章 发送和接收IBM WebSphere MQ消息
InterSystems IRIS为IBM WebSphere MQ提供了一个接口,可以使用该接口在InterSystems IRIS和IBM WebSphere MQ的消息队列之间交换消息。要使用此接口,必须能够访问IBM WebSphere MQ服务器,并且IBM WebSphere MQ客户端必须与InterSystems IRIS在同一台计算机上运行。
该接口由%Net.MQSend和%Net.MQRecv类组成,这两个类都是%Net.abstractMQ的子类。这些类使用由InterSystems IRIS在所有合适的平台上自动安装的动态链接库。(这是Windows上的MQInterface.dll;其他平台的文件扩展名不同。)。反过来,InterSystems IRIS动态链接库需要IBM WebSphere MQ动态链接库。
该界面仅支持发送和接收文本数据,不支持二进制数据。
使用IBM WebSphere MQ的RIS接口
通常,要使用IBM WebSphere MQ的InterSystems IRIS接口,请执行以下操作:
- 确保有权访问
IBM WebSphereMQv7.x或更高版本。具体而言:
- IBM
WebSphere MQ客户端必须与InterSystems IRIS安装在同一台计算机上。
第十章 使用FTP
IRIS提供了一个类%Net.FtpSession,可以使用它从InterSystems IRIS内建立与FTP服务器的会话。
建立FTP会话
要建立FTP会话,请执行以下操作:
- 创建
%Net.FtpSession的实例。 - 可以选择设置此实例的属性,以控制会话的常规行为:
Timeout超时指定等待FTP服务器回复的时间(以秒为单位)。SSLConfiguration指定用于连接的激活的SSL/TLS配置(如果有)。如果FTP服务器使用HTTPS,请使用此选项。TranslateTable指定在读取文件内容或写入文件内容时要使用的转换表。UsePASV启用PASV模式。- 当
FTP服务器使用https时,SSLCheckServerIdentity适用。默认情况下,当%Net.FtpSession的实例连接到SSL/TLS服务器时,它会检查证书服务器名称是否与用于连接到服务器的DNS名称匹配。如果这些名称不匹配,则不允许连接。
若要禁用此检查,请将SSLCheckServerIdentity属性设置为0。
- 调用
Connect()方法以连接到特定的FTP服务器。 - 调用
ascii()或binary()方法将传输模式分别设置为ASCII模式或二进制模式。要查看当前传输模式,请检查实例的Type属性的值。
注意:%Net.
第九章 创建、编写和阅读MIME邮件
Iris提供了一个可以用于创建MultiPart Mime消息(%Net.MimePart)的类。创建要添加到SOAP消息的附件时,请使用此类;请参阅创建Web服务和Web客户端。因为MIME是一个常见的标准,所以有许多其他可能的应用程序,例如电子邮件处理和HTTP Multipart Post。
MIME消息概述
MIME格式的文档被称为MIME部分。每个MIME部件都有标题,包含邮件正文(文本或二进制)或包含额外的MIME部件。具有MIME版本标题的MIME部分可以用作顶级文档,称为MIME消息。下图显示了示例:
在该示例中,E和F具有未显示的附加子部分。
要表示MIME部件,请使用 %Net.MIMEPart类,该类提供用于设置零件的标题和内容的属性。
创建MIME部分
要创建一个MIME部件,执行以下步骤:
- 创建
%Net.MIMEPart的实例。 - 做以下其中一项:
- 添加文本或二进制正文。为此,请创建流(文本或二进制)的实例,并将MIME部分的
Body属性设置为等于该流。使用标准流接口将数据写入此流。不要为Parts属性指定值。 - 添加MIME部件列表。为此,请按此处所述创建MIME部件,并将
Parts属性设置为等于这些部件的列表。不要为Body属性指定值。
- 可以选择按照“设置和获取MIME部件标头”中的说明设置标头。
第八章 处理收到的电子邮件
处理收到的电子邮件
本节介绍如何处理通过%Net.POP3检索到的电子邮件(%Net.MailMessage)。
Message Basics
检索电子邮件(%Net.MailMessage)后,通常首先确定它是哪种类型的邮件以及如何阅读它;也就是说,它是否是多部分邮件以及各部分是否是二进制的。在此步骤中,您可以使用ContentType属性。或者,可以使用IsBinary、IsHTML和IsMultiPart属性,它们间接提供与contentType相同的信息。
如果消息是多部分消息,则每个部分都是%Net.MailMessagePart的一个实例。
Message Headers
消息本身和消息的每个部分都有一组标头。
%Net.MailMessage和%Net.MailMessagePart类提供的属性使可以轻松访问最常用的标头。例如,%Net.MailMessage提供收件人、发件人、主题和日期等属性。Headers数组属性允许访问任何自定义标题.
此外,如果已通过%Net.POP3检索到消息,则可以使用GetAttribute()方法。在给定标头名称和属性的情况下,此方法返回该属性的值。
Message Contents
了解常规消息结构后,请使用以下技术检索内容:
- 对于多部分消息,请使用
Parts属性,该属性是部分的数组。Parts.
单位cache2016.2用rose做的双机,数据库放在阵列上,通过rose切换挂载同一个阵列磁盘,本质上是一个实例,另外做了个mirror机。
这样的结构在容灾备份上有什么问题没,希望给点建议。谢谢
第七章 从POP3服务器提取电子邮件
将附件另存为文件
Content-Disposition标头可以指定附件,可以带文件名,也可以不带文件名。例如:
Content-Disposition: attachment; filename=genome.jpeg;
如果Content-Disposition标头确实指定了附件,则%Net.POP3实例可以将邮件中的所有附件保存到文件。要实现这一点,请执行以下操作:
- 指定
%Net.POP3实例的以下属性:
- 将
StoreAttachToFile指定为%1。 - 将
StoreInlineToFile指定为%1。 - 为
AttachDir指定有效目录。根据操作系统的不同,确保使用斜杠(/)或反斜杠(\)结束目录名称。还要确保该目录已经存在,并且用户对其具有写访问权限。
- 调用
%Net.POP3实例的Fetch()或FetchMessage()。
每个文件名的确定方式如下:
- 如果
Content-Disposition标头指定了文件名,则使用该文件名。 - 否则,如果
Content-Type标头指定了文件名,则使用该文件名。 - 否则,系统将创建格式为
ATTxxxxx.dat的名称。
请注意以下几点:
- 如果该文件已存在,则不会下载附件。
AttachDir没有默认值。- 附件的大小不受IRIS的限制,但可能受文件系统的限制。
- 这里不使用
Dir和FileName属性。
嗨,社区,
我正在尝试访问对象的另一个进程的内容,例如%request和%session。我正在使用类/方法“%SYS.ProcessQuery:VariableByPid”。有谁知道如何从数据库服务器上运行的一个进程中获取诸如%request.Data(“ ID”,1)之类的属性的值?
我想做的例子:
set rs=##class(%ResultSet).%New("%SYS.ProcessQuery:VariableByPid")
set tsc=rs.Execute(ProcessID,"%request")
while rs.%Next() {
w "Name:"_$g(rs.Data("Name")),!
w "Value:"_$g(rs.Data("Value")),!
}
do rs.Close()
Output:
Name:%request
Value:1@%CSP.Request
我只是可以看到对象引用1@%CSP.Request,我不确定我们是否有办法检查对象属性。
5月27日,CHIMA大讲堂第十九期邀请医院信息化专家和InterSystems技术专家,共同探讨集成平台赋能智慧医院建设这一话题。欢迎大家围观参会!
第六章 从POP3服务器提取电子邮件
从POP3服务器提取电子邮件
与POP3服务器通信
如果拥有所需的权限,并且邮件服务器正在运行,则可以使用POP3协议从该服务器下载和处理电子邮件。通常,要与POP3服务器通信,请登录,执行一系列影响邮箱的操作,然后提交或回滚任何更改。要在系统间IRIS中执行此操作,请执行以下操作:
- 创建
%Net.POP3的实例。此对象描述将使用的POP3服务器。 - 可以选择指定
%Net.POP3实例的以下属性:
port-指定要使用的端口;默认值为110。timeout超时-指定读取超时(以秒为单位);默认值为30秒。StoreAttachToFile-指定在读取邮件时(当邮件包含Content-Disposition;附件标题时)是否将每个附件保存到文件。默认值为False。请注意,除非还设置了AttachDir,否则此设置不起任何作用。StoreInlineToFile-指定在读取邮件时(当邮件包含Content-Disposition;内联标题时)是否将每个内联附件保存到文件中。默认值为False。请注意,除非还设置了AttachDir,否则此设置不起任何作用。AttachDir-指定将附件保存到的目录。没有违约。根据操作系统的不同,确保使用斜杠(/)或反斜杠(\)结束目录名称。还要确保该目录已经存在,并且用户对其具有写访问权限。
.png)
作为一个软件架构师,如果要设计一个企业级的架构来满足当前的业务需求时,你需要达到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 是您的不二选择。
第五章 向邮件添加附件
向邮件添加附件
可以将附件添加到电子邮件或消息部分(具体地说,是添加到%Net.MailMessagePart或%Net.MailMessage的实例)。要执行此操作,请使用以下方法:
这些方法中的每一种都会将附件添加到原始邮件(或邮件部分)的Parts数组中,并自动将IsMultiPart属性设置为1。
AttachFile()
method AttachFile(Dir As %String,
File As %String,
isBinary As %Boolean = 1,
charset As %String = "",
ByRef count As %Integer) as %Status
将给定文件附加到电子邮件。默认情况下,文件以二进制附件的形式发送,但您可以将其指定为文本。如果文件是文本,还可以指定该文件使用的字符集。
具体地说,此方法创建%Net.MailMessagePart的实例,并根据需要将文件内容放在BinaryData或TextData属性中,并根据需要设置CharSet属性和TextData.TranslateTable属性。
cache2016开始提供了支持JSON的系统类,%DynamicAbstractObject %DynamicArray %DynamicObject,
不知是否可将这些系统类导入到之前的版本(如cache2012), 从而实现支持JSON操作,或者是有何其他简单的解决办法
问题背景
目前不论开发和项目的数据库版本大部分是2016+,且广泛使用JSON,但当偶尔向低版本用户部署程序时,会遇到对JSON支持的问题
新安装的cache,本地可以连接terminal,远程主机连接失败,telnet 23端口失败
本帖的目的是回答一个问题。 在本系列的第二篇帖子中,我包括了从 pButtons 提取的性能数据的图表。 有人在线下问我,有没有比剪切/粘贴更快的方法从 pButtons .html文件中提取 mgstat 等指标,以便在 Excel 中绘图。
参见:- 第 2 部分 - 研究收集的指标
pButtons 将其收集的数据编译成一个 html 文件,以便发送给 WRC 和查看整理的数据。 不过,尤其是对于长时间(如 24 小时)进行收集的 pButtons 来说,一些基于时间的数据(如 mgstat、vmstat 等)以图形方式查看更容易查找趋势或模式。
我本人和其他技术架构师经常需要向客户和供应商说明 Caché IO 要求以及 Caché 应用程序使用存储系统的方式。 在向客户和供应商说明典型的 Caché IO 配置文件和事务性数据库应用程序的要求时,下面的表格很有用。 原始表格由 Mark Bolinsky 创建。
在以后的帖子中,我将讨论更多关于存储 IO 的内容,所以现在贴上这些表格也作为将来文章的参考。

