标签: memory

查看/编辑正在运行的进程的用户空间内存的工具?

是否有任何工具可以查看/编辑 Linux 上正在运行的进程的用户空间内存?

这将是一个很好的学习工具。

memory linux operating-systems ubuntu

7
推荐指数
1
解决办法
4883
查看次数

内存缓存与磁盘失去同步

(Ubuntu Linux 服务器,64 位)我正在对刚刚下载的文件(~3.0 GB)进行故障排除,但是当我发现一些非常不寻常的东西时,它没有通过完整性测试。

首先这是下载后文件的MD5,与预期值不匹配:

~% md5sum media.iso 
5d74facb904cc1765a468354908a8f34  media.iso
Run Code Online (Sandbox Code Playgroud)

一段时间过去了,在此期间应该没有任何更改文件,但是当我再次检查文件时:

~% md5sum media.iso
a5b97c5016afb39bd67ccfc3fa6ca59e  media.iso
Run Code Online (Sandbox Code Playgroud)

这真是出乎意料。由于我有很多 RAM,我怀疑这是缓存的影响,并且出现了问题。我决定从磁盘重试整个文件,令我惊讶的是:

~% sudo sysctl -w vm.drop_caches=3    # This linux command invalidates
vm.drop_caches = 3                    # everything in the memory cache.
~% md5sum media.iso
2992aa6270f6e1de9154730ed3beedc1  media.iso
Run Code Online (Sandbox Code Playgroud)

我重做了它,现在它似乎保持一致,尽管这仍然不是我期望的值。当然,内存缓存中的内容与磁盘上的内容不同。这是大问题。

为了修复下载,我在源机器上创建了一个 torrent 并在目标机器上打开它。大约 3.0GB 中的五个 1MB 块未通过完整性检查。我使用 torrent 来修复这些文件块以及文件完整性如何。

现在的问题是确定数据在何处不同步。

  1. 我用memtest86+测试了内存,除了位衰落测试。我期待看到一些失败的内存模块,但没有任何东西。一切都好。
  2. 文件系统是 Ext4,基于 LVM2,基于 3 磁盘 RAID5 阵列。Ext4 被认为是稳定的,如果磁盘之间的数据不一致,mdadm 会发出警告。但是日志中没有任何内容。SMART 错误日志是干净的,磁盘是新的(“开机时间”少于 30 天)。
  3. 我正在寻找有关当前内核 (2.6.35) 中任何数据丢失错误的信息,但就我看来,似乎什么也没有。

关于我还可以检查什么的任何想法,或者缺陷/错误到底可能在哪里?

它是 Ubuntu 10.10 64 位、Core …

memory linux cache

7
推荐指数
1
解决办法
3202
查看次数

为什么 32 位操作系统不能寻址超过 3.2/3.2 GB 的内存?

不知道这是否是问这个问题的正确地方。

我一直在读 32 位操作系统(如我现在正在运行的 Ubuntu)不能处理超过 3.2gb 或 3.3gb 的 RAM 内存。

我记得在我的旧计算机体系结构课程中,内存限制是 2^32 个“指针”(不记得正确的词)。我的意思是,内存被表示为一个数组,CPU 可以直接访问它,但要达到它的限制。如果 CPU 是 32 位,那么它可以寻址 2^32 个字,如果它是 64 位 2^64,等等。

所以,如果我之前说的是对的,那么我的操作系统应该能够解决 2^32 = 4294967296 = 4Gb。

我在想,可能会为内核、缓存、缓冲或交换的特定用途保留某种空间。但是没有正确答案。

你能给我一个提示吗?

memory operating-systems 64-bit 32-bit ubuntu

7
推荐指数
2
解决办法
838
查看次数

具有 nnn-3n 值的 RAM 时序是否比其他任何东西表现更好?

我想问一些问题:使用 nnn-3n(即 8-8-8-24、9-9-9-27 等)的 RAM 时序是否比其他没有(即 7- 8-7-21、9-9-9-24 等)?

memory latency cas

7
推荐指数
1
解决办法
838
查看次数

Mac OS X:什么在使用我的“活动”内存?

我正在使用一台配备 8 GB RAM 的最新 MacBook Pro,在工作中使用它几个小时后,我注意到“活动”内存的数量在不断增长。

每当我重新启动 Mac 时,一切看起来都很好,而且几乎不使用任何 RAM。但几个小时后,它看起来像这样:

截屏

如您所见,在本例中大约为 4.3 GB。

作为开发人员,我知道“活动内存”是正在运行的进程当前使用的内存量。所以我做的第一件事就是退出所有应用程序并杀死所有似乎不属于 Mac OS X 的进程。

在我这样做之后,我的活动内存下降了大约 400 MB,但卡在了你在屏幕截图中看到的内容上。没有更多的进程或应用程序要退出。

现在我想知道到底是什么在保持记忆?top和活动监视器不报告任何具有高内存使用率的进程。

有任何想法吗?

谢谢!


更新 1:

感谢 Doug Harris 的回答,我制作了这张截图。它显示了 2.55 GB 系统范围的活动内存使用量,但该ps命令计算的内存使用量仅为 1.55 GB 。

在此处输入图片说明

我不确定 2.55 GB 的其余部分去了哪里或分配到哪里了。我安装了 Instruments,但由于这确实发生在几个小时的跨度内,因此很难使用 Instruments。这感觉就像操作系统中某处的内存泄漏。可能是驱动程序(尽管我没有安装任何内核扩展 - 使用 进行检查kextstat)。

我个人认为能够看到有关内存管理状态的“更多”信息会很有趣。在 Linux 下,“/proc”下有一些信息可用,afaik。

memory osx-snow-leopard memory-leaks

7
推荐指数
1
解决办法
1万
查看次数

是否提供 DIMM 转 USB 转换器?

在将我兄弟的笔记本升级到 2GiB 后,我有一个 512MiB DDR2 SODIMM SDRAM。看到它没有被使用,它在市场上几乎没有任何价值,如果我能用它来放置页面文件,我会喜欢它。由于 Windows Vista/7 具有通过 USB 的 ReadyBoost,我想我可以使用它,前提是我首先有一个 DIMM 到 USB 转换器解决方案。有任何想法吗?

(因为我的 1 插槽 MicroDIMM Fujitsu 平板电脑有 1GiB,而 2GiB 晶圆至少要 100 美元,我很伤心,而且我已经破产了,而且是 NEET)

memory usb paging sodimm

7
推荐指数
1
解决办法
4604
查看次数

以不同的速度添加更多 RAM?它会影响性能,使其比不添加它更糟吗?

我买了一台带有 4GB 内存的新笔记本电脑,可扩展到 8GB。它有 1 个 4GB 的 DDR3 PC3-12800,频率为 1600Mhz。我似乎无法在本地找到另一个完全相同的,我找到的最接近的是 1 4GB DDR3 PC3-10600 1333Mhz。所以我的问题是,我知道它们都会以最慢的速度运行,所以即使我有更多的可用 RAM,它也会变得更慢。性能损失大到让升级不值得麻烦吗?

upgrade memory

7
推荐指数
2
解决办法
7517
查看次数

识别丢失的物理内存

我遇到了服务器物理内存不足的问题,我无法辨别它是来自我的应用程序的 Java 进程还是服务器上的其他进程。让我们假设以下场景:

服务器物理内存:3747MB
Java -Xms64m
Java -Xmx512m
Java XX:MaxPermSize=512m

当我启动服务器时,操作系统 (RHEL) 使用您最喜欢的内存报告工具(top, cat /proc/meminfo | grep Mem, free -m等)报告正在使用 487MB 。当我启动我的 Java 进程(pid 123)时,它使用了大约 215MB 的物理内存(如 RES 内存报告的那样ps -f -p 123),使我使用的总内存高达 700MB 左右。

如果我让它运行一整天,我的进程的 RES 内存会稍微波动,但通常是一致的。然而,服务器总内存稳步增加约 1500MB,达到 2200MB。

如果我的 java 堆大小或 perm gen 堆在增长,它不会反映在进程的 RES 内存中吗?

此外,我似乎无法在任何地方考虑额外的 1500MB。

# ps aux | awk '{ RES+=$6 } END { printf("RES: %.2fMB\n", RES/1024) }'
RES: 722.23MB
Run Code Online (Sandbox Code Playgroud)

谁能帮我找回丢失的记忆?我基本上是想弄清楚这是我的应用程序问题,还是基础架构团队的服务器构建问题。

memory linux java memory-leaks redhat-enterprise-linux

7
推荐指数
1
解决办法
831
查看次数

像 Cheat Engine 这样的软件是如何工作的?

Cheat Engine是一种用于搜索和修改其他正在运行的进程的内存的工具。我曾经认为这非常简单:访问一个地址并简单地修改它。但我现在意识到事情并没有那么简单。每个进程都有自己的虚拟内存,两个进程不能玩彼此的内存。那么作弊引擎究竟是如何破坏进程隔离并修改其他进程的内存的呢?

memory virtual-memory

7
推荐指数
1
解决办法
5141
查看次数

如何在 Mac 上跟踪和记录 CPU 和内存使用情况?

我知道我可以使用 Activity Monitor(以及大量 3rd 方应用程序)来监控我的 Mac 上 RAM 和 CPU 的使用情况。但是,我想在一段时间内捕获日志,以便我可以比较进程之间的使用情况,而无需进行屏幕截图等。类似控制台的东西,如下所示:

Process A (5:22 - 5:32)

5:22:01: 2.2% CPU, 5 Threads, 111.1MB Real Mem  
5:22:03: 2.1% CPU, 4 Threads, 90.4MB Real Mem  
...
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

memory cpu logging tracking macos

7
推荐指数
1
解决办法
2万
查看次数