小编Ank*_*wal的帖子

从 /proc/pid/smaps 获取有关进程内存使用情况的信息

对于 中的给定进程/proc/<pid>/smaps,对于给定的映射条目是:

  1. Shared_Clean
  2. Shared_Dirty
  3. Private_Clean
  4. Private_Dirty

Shared_Clean+Shared_Dirty是与其他进程共享的存储器的量?所以它就像共享RSS?

同样是Private_Clean+仅可用于一个进程Private_Dirty的内存量?所以它就像私人RSS?

PSS 值是否 = PrivateRSS +(SharedRSS / 共享它的进程数)?

阅读此链接后还有一些问题:LWN

现在让我们从整体上讨论这个过程,我们正在查看其 smaps 条目。

我注意到,如果我为流程的每个 smaps 条目执行Shared_Clean+ Shared_Dirty+ Private_Clean+ Private_Dirty,我会得到流程的 RSS 报告ps,这非常酷。例如

ps -p $$ -o pid,rss
Run Code Online (Sandbox Code Playgroud)

将为我提供与/proc/$$/smaps中每个Shared_Clean, Shared_Dirty, Private_Clean,Private_Dirty条目的总和(大约)相同的 rss 值。

但是整个过程的PSS呢?那么,从上面的示例中,我如何获得 $$ 的 PSS?我可以为每个 smaps 映射添加 PSS 条目并以 $$ 到达 PSS 吗?

那么整个过程中的USS …

linux process memory virtual-memory

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

使用 -L 查找用法

我有

link -> file
Run Code Online (Sandbox Code Playgroud)

我愿意

find -L . -name 'link'
Run Code Online (Sandbox Code Playgroud)

并得到

./link
Run Code Online (Sandbox Code Playgroud)

这是为什么?

man find 说:

-L :遵循符号链接。当 find 检查或打印有关文件的信息时,所使用的信息应取自链接指向的文件的属性,而不是来自链接本身(除非它是损坏的符号链接或 find 无法检查文件)链接指向的)。

find symlink

42
推荐指数
2
解决办法
5万
查看次数

如何在基于 ARM 的系统上测试 RAM 的数据损坏情况?

我有一个嵌入式设备。它基于 ARM,使用 Linux 2.6.31 和 256 MB RAM。

我想就什么是测试设备 RAM 数据损坏的最有效方法获得一些想法/提示。有人可以建议测试/软件吗?

笔记:

我现在有 memtester。我是在 Ulrich Dangel(下图)的建议下得到的。

我现在也mtest从uboot设置了。

我可以使用任何其他测试/方法吗?

linux boot memory arm

22
推荐指数
2
解决办法
3万
查看次数

如何找到一个目录的所有链接

当我统计一个目录时,我得到一个列表,告诉我有 5 个指向该目录的链接。

stat dir
Run Code Online (Sandbox Code Playgroud)

我的问题是如何获取所有这 5 个链接的信息(名称和位置)?

directory hard-link

15
推荐指数
1
解决办法
5173
查看次数

我如何知道 uboot 正在使用什么内存 RAM 地址范围?

我在 uboot 中,想知道如何知道 uboot 正在使用什么 RAM 地址范围。

uboot 需要内存才能运行,因此它可能正在使用一些 RAM。我想避免修改这些 RAM 地址。

我如何知道 uboot 加载了哪个内存区域?

linux boot memory u-boot

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

ps o/p 中 SZ RSS 和 VSZ 之间的数学联系?

我想知道 ps 输出中的 SZ、RSS 和 VSZ 输出之间有什么数学联系,例如

ps -p 2363 -o sz,rss,vsz
Run Code Online (Sandbox Code Playgroud)

linux memory ps

12
推荐指数
1
解决办法
9497
查看次数

如果我忘记了登录名和密码,如何登录我的 Linux 笔记本电脑?

如果我忘记了用户名和密码,如何登录我的 Linux 笔记本电脑?

linux password login ubuntu

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

Ctrl+C 在 gnome-terminal 中不起作用

在我的 Linux 主机上,Ctrl+C似乎不起作用,我不知道如何继续使其工作。我将 Ubuntu 10.04 与 bash 4.1.5(1) 一起使用,并在 Gnome 终端中工作。

当我在此脚本运行时按下Ctrl+C时,它并没有导致它退出。

#!/bin/bash
for i in `seq 500`
do
        ps -e > /dev/null
        echo $i
done
Run Code Online (Sandbox Code Playgroud)

ubuntu keyboard-shortcuts signals gnome-terminal

10
推荐指数
3
解决办法
2万
查看次数

dd:写入“/dev/null”:设备上没有剩余空间

我正在将一个 550MB 的文件读入 /dev/null 并且我得到

dd: writing '/dev/null': No space left on device
Run Code Online (Sandbox Code Playgroud)

我很惊讶。我认为 /dev/null 是一个黑洞,您可以在其中随意发送(因为它是虚拟文件系统)。

是的,当我收到此错误时,我的磁盘几乎已满。除了从磁盘中删除内容之外,我还能做什么?

 ls -l /dev/null
 -rw-r--r--    1 root     root             0 July 7 21:58 /dev/null
Run Code Online (Sandbox Code Playgroud)

代替

 crw-rw-rw-    1 root     root        1,   3 July 7 02:58 /dev/null
Run Code Online (Sandbox Code Playgroud)

我正在使用的命令:

time sh -c "dd if=$filename of=/dev/null"
Run Code Online (Sandbox Code Playgroud)

linux shell filesystems kernel dd

9
推荐指数
1
解决办法
8597
查看次数

一个令我困惑的 oom 杀手

当我看到有足够的内存可用时,我无法理解为什么内核会发出这个 oom 杀手:

另外为什么分配了这么多内核缓存页面?我看后说有足够的可用内存

普通的

DMA

普通自由行

这是一个基于 NAND 闪存的嵌入式设备,具有 256 MB RAM

内核:2.6.31

 myshellscript invoked oom-killer: gfp_mask=0xd0, order=2, oomkilladj=0 
 Backtrace: 
 [<c0106494>] (dump_backtrace+0x0/0x110) from [<c03641a0>] (dump_stack+0x18/0x1c) 
 r6:000000d0 r5:c9040c60 r4:00000002 r3:c0448690 
 [<c0364188>] (dump_stack+0x0/0x1c) from [<c015a314>] (oom_kill_process.clone.11+0x60/0x1b4) 
 [<c015a2b4>] (oom_kill_process.clone.11+0x0/0x1b4) from [<c015a738>] (__out_of_memory+0x154/0x178) 
 r8:c21e86e0 r7:001fb000 r6:00000002 r5:000000d0 r4:c9b6e000 
 [<c015a5e4>] (__out_of_memory+0x0/0x178) from [<c015a980>] (out_of_memory+0x68/0xa0) 
 [<c015a918>] (out_of_memory+0x0/0xa0) from [<c015d230>] (__alloc_pages_nodemask+0x42c/0x520) 
 r5:00000002 r4:000000d0 
 [<c015ce04>] (__alloc_pages_nodemask+0x0/0x520) from [<c015d388>] (__get_free_pages+0x18/0x44) 
 [<c015d370>] (__get_free_pages+0x0/0x44) from [<c0109418>] (get_pgd_slow+0x1c/0xe0) 
 [<c01093fc>] (get_pgd_slow+0x0/0xe0) from [<c0129ab0>] (mm_init.clone.43+0xb0/0xf0) 
 r7:c90858c0 r6:00000000 r5:c90858c0 r4:ce1a6680 
 [<c0129a00>] (mm_init.clone.43+0x0/0xf0) from [<c0129c40>] …
Run Code Online (Sandbox Code Playgroud)

linux kernel memory virtual-memory linux-kernel

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