我认为我的LAMP应用程序中可能发生内存泄漏(内存用完,交换开始使用,等等)。如果我可以看到各个进程使用了多少内存,则可以帮助我解决问题。有没有办法让我在*
nix中查看此信息?
获得正确的内存使用情况比人们想象的要棘手。我能找到的最好方法是:
echo 0 $(awk '/TYPE/ {print "+", $2}' /proc/`pidof PROCESS`/smaps) | bc
其中“ PROCESS”是要检查的过程的名称,而“ TYPE”是以下之一:
Rss
:常驻内存使用情况,该进程使用的所有内存,包括该进程与其他进程共享的所有内存。它不包括掉期;Shared
:该进程与其他进程共享的内存;Private
:此过程使用的私有内存,您可以在此处查找内存泄漏;Swap
:交换进程使用的内存;Pss
:比例设置大小,良好的整体内存指示器。它是为共享而调整的Rss:如果某个进程在1个私有进程中具有1MiB,在其他10个进程之间共享了20MiB,则Pss为1 + 20/10 = 3MiB其他有效值是 Size
(即虚拟大小,几乎没有意义)和 Referenced
(当前标记为引用或访问的内存量)。
您可以使用watch
或其他bash-script-fu来监视要监视的进程的那些值。
有关更多信息smaps
:http
:
//www.kernel.org/doc/Documentation/filesystems/proc.txt。
问题内容: 在执行过程中,一个Java程序如何知道它正在使用多少内存? 我不在乎它有多有效! 问题答案: VonC的答案是一个交互式解决方案- 如果您希望以编程的方式了解,则可以使用Runtime.totalMemory()来查找JVM使用的总量,然后使用Runtime.freeMemory()来查找仍有多少可用量(即它分配 到 的JVM,但不分配 中 的JVM -新对象可以使用这块内存)。 这些
问题内容: 您将如何查找对象正在使用多少内存?我知道有可能找出一个代码块,而不是实例化对象(在其生命中的任何时候)要使用多少,这就是我想要的。 问题答案: 尝试这个: 如果对象是由垃圾收集器管理的,则getsizeof()调用该对象的__sizeof__方法并增加额外的垃圾收集器开销。
我的使用场景: 需要判断富文本编辑器内是否只输入了空格or回车(这种情况我会判定为空) 比如上面这串就是只输入了空格和回车后,富本文返回的内容,用正则要如何判断呢? 以及还有一个拓展需求,就是我想要去除富文本编辑器内,内容首尾的空格和回车要如何匹配呢? 感觉这个应该和上面思路有共同的地方
问题内容: 我有一个Java应用程序。我想知道发送此信号的进程的pid。 那可能吗? 问题答案: 两种Linux专用方法是和,它们允许程序接收有关已发送信号的 非常 详细的信息,包括发送方的PID。 调用并传递给它,其中包含所需的信号处理程序,并且设置了标志。使用此标志,您的信号处理程序将接收 三个 参数,其中一个是包含发送者的PID和UID的结构。 从中调用和读取结构(通常以某种选择/轮询循环的
问题内容: 我在具有16GB Ram和64位OS的Linux机器上运行Python 2.7。我编写的python脚本可能会将过多的数据加载到内存中,这使计算机的运行速度降低到我什至无法杀死进程的地步。 虽然可以通过以下方式限制内存: 在运行脚本之前,请在外壳程序中添加一个限制选项。在我到处看的地方,该模块具有与相同的功能。但是调用: 在我的脚本开始时,绝对没有任何作用。即使将值设置为12000,也
我最近读了很多关于字符串内存分配的文章,但找不到任何细节,如果在Java8中情况相同的话。 在Java8中,像这样的字符串会使用多少内存空间?我使用64位版本。