嗅探内部活动——IPC 还是共享内存?

Posted

技术标签:

【中文标题】嗅探内部活动——IPC 还是共享内存?【英文标题】:Sniffing internal activity - IPC or shared memory? 【发布时间】:2018-02-18 14:33:39 【问题描述】:

我有一个 Progress OpenEdge 服务器,我想使用一个数据包分析工具,我们必须跟踪服务器上的用户在数据库中所做的事情。我可以看到来自 Web 管理工具的 HTTP 流量,我可以看到远程运行的 TCP 流量,但 OpenEdge 有一大堆实用程序,可用于各种管理任务,只是没有被使用。

我尝试使用其中一个实用程序进行测试运行并使用 tcpdump -i lo 进行记录,但我什么也没看到。 我尝试了 netstat --unix -p 并且每次运行相同的实用程序时都没有看到任何 PID 提前。 我在测试运行时尝试了 ipcs -pm,发现 LPID 发生了变化,而 CPID 保持不变。所以看起来同一个进程正在捕获共享内存空间并将新进程附加/分离到它。可能是运行该实用程序的进程。

我可以做更多的事情来确定共享内存的进程吗?有没有可能这是一个 IPC 过程?

【问题讨论】:

数据库本身内部发生的事情不会显示在网络上。它驻留在内存和磁盘中。服务器和客户端之间的流量应该在网络上是可追踪的。 【参考方案1】:

要查看用户在“数据库内部”所做的事情,您需要执行其他操作。

要查看数据访问语句,请使用“客户端语句缓存”功能。这可通过 PROMON 在 R&D、Status、18 菜单下获得。或者通过_connect“虚拟系统表”。

还有许多其他 VST 可以提供有关数据库内部的详细信息,但这是一个非常广泛的主题。

【讨论】:

以上是关于嗅探内部活动——IPC 还是共享内存?的主要内容,如果未能解决你的问题,请参考以下文章

IPC通信_共享内存

进程间通信---共享内存

Linux进程IPC浅析[进程间通信SystemV共享内存]

Linux进程IPC浅析[进程间通信SystemV共享内存]

IPC共享内存和线程内存的性能差异

System v shm的key