GNU malloc_info():获得真正分配的内存?

Jan*_*ker 6 linux malloc memory-management

我正在尝试调查大型多线程服务器的内存使用情况.据mallinfo(),我得到arena=350Mfordblks=290M,这表明大部分空间实际上是浪费了里面malloc().该malloc_info()函数提供了一个很好的XML数据结构,应该是不言自明的.不过,有人可以向我解释

  • 0特别吗?是所有其他人居住的主要竞技场吗?
  • 是否<size from=.../>分配了块,免费/可用或两者兼而有之?
  • <system>元素是什么?内存分配使用mmap()/sbrk()
  • <aspace>元素是什么?有效内存?
  • 怎么样<aspace type="mprotect" .../>

只是一开始,我希望能够根据malloc()想法绘制应用程序分配的总内存,即分配但尚未释放的所有内容.

Nei*_*son 1

大量的虚拟内存使用并不一定是一个问题。默认的 malloc 实现将为每个线程分配大量存储,以避免争用问题。这种情况尤其发生在现在很常见的 64 位实现上。您不必担心,除非您遇到常驻内存大小问题或出现分页问题。

Kevin Grigorenko撰写了许多博客文章,讨论与 WebSphere 相关的内存使用情况,但它们适用于任何大型多线程进程。