use*_*029 2 linux memory-management
我们在 Linux 下运行的程序遇到内存分配问题。我们正在使用 top 实用程序来尝试确定问题的根本原因。我们注意到的一件事是,一个进程的共享内存值过高(顶部的 SHR 列)。
阅读 top 的 MAN 页使我相信 SHR 列代表通过共享内存进行进程间通信的内存量。它是否正确?
如果是这样,那么任何进程分配 50 - 60 MB 的共享内存是否有意义(X11 仅分配 11MB,根据它必须执行的操作,这似乎是合理的)。
谢谢...
小智 5
SHR列仅表示进程使用的共享内存量。它可用于进程间通信,但更常见的情况是,这是应用程序链接的共享库使用的内存。
\n\n\n\n\n\n\n共享虚拟内存
\n\n虽然虚拟内存允许进程拥有单独的(虚拟)地址空间,但有时您需要进程共享内存。例如,系统中可能有多个进程运行 bash 命令 shell 。与其拥有多个 bash 副本(每个进程虚拟地址空间都有一个),不如在物理内存中仅拥有一份副本,并且所有运行 bash 的进程共享该副本。\n 动态库是在多个进程之间共享执行代码的另一个常见示例。
\n\n共享内存还可以用作进程间通信 (IPC) 机制,两个或多个进程通过所有进程共用的内存交换信息。Linux 支持 Unix TM System V 共享内存 IPC。
\n
顶部手册页对此专栏的介绍:
\n\n t: SHR -- Shared Mem size (kb)\n The amount of shared memory used by a task. It simply reflects mem\xe2\x80\x90\n ory that could be potentially shared with other processes.\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
6560 次 |
最近记录: |