我试图了解嵌入式Linux应用程序的内存使用情况。该/proc/pid/maps
实用程序/文件似乎是查看详细信息的好资源。不幸的是,我不理解所有的列和条目。
匿名索引节点0条目是什么意思?这些似乎是一些较大的内存段。
中的每一行都/proc/$PID/maps
描述了进程或线程中连续虚拟内存的区域。每行都有以下字段:
address perms offset dev inode pathname
08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm
-
将显示a而不是r
/ w
/ x
。如果区域不 共享的 ,它是 私人 ,所以p
会出现,而不是一个s
。如果该进程尝试以不允许的方式访问内存,则会产生分段错误。可以使用mprotect
系统调用来更改权限。mmap
),则这是映射开始的文件中的偏移量。如果内存不是从文件映射的,则仅为0。[heap]
,[stack]
或[vdso]
。[vdso]
代表虚拟动态共享对象。系统调用使用它来切换到内核模式。mmap
但不附加到任何文件创建。它们用于许多其他事情,例如共享内存或未在堆上分配的缓冲区。例如,我认为pthread库使用匿名映射的区域作为新线程的堆栈。问题内容: 我正在努力弄清标题中提到的两个文件。我查了一下是什么。但是,我无法理解如何从他们那里提取有用的信息(或者我只是以错误的方式来对待)。 让我解释一下:页面映射是一个相当新的“功能”伪文件,其中包含分配给当前[pid]的虚拟页面的物理框架信息。也就是说,给定一个从地址x开始的虚拟页面,比如说“ vas”代表虚拟地址开始,我可以使用vas为页面地图文件建立索引,以获取映射的物理页面框架的64
问题内容: 从Linux发出此命令时: 最后两个数字是多少? 最后一个每秒保持增加2,我应该担心吗? 问题答案: 最后一个是系统在过去15分钟内的工作量。 / proc / loadavg 该文件的前三个字段是平均负载数字,给出了运行队列(状态R)或等待磁盘I / O(状态D) 在1、5和15分钟内平均 的作业数。它们与正常运行时间(1)和其他程序给出的平均负载数相同。 第四个字段由两个数字组成,
问题内容: 我试图破译如何使用/ proc / pid / pagemap来获取给定页面集的物理地址。假设从/ proc / pid / maps中获得了与堆相对应的虚拟地址afa2d000-afa42000。我的问题是如何使用此信息遍历页面地图文件并找到对应于地址afa2d000-afa42000的物理页面框架。 / proc / pid / pagemap条目为二进制格式。有什么工具可以帮助解
我重新安装了Apache Kafka 0.10.1.0。 在使用Producer/Consumer Java示例时,我无法知道Consumer示例中的group.id参数。 让我知道如何解决这个问题。 下面是我使用的消费者示例: 在为consumer运行命令后,我可以看到Producer发布的消息(在控制台上)。但无法看到来自java程序的消息 bin\windows\kafka-console-
provides a mechanism to support standalone processes you can find the sample at https://www.wenjiangs.com/doc/BZ7EWB2Eexamples/ngx_proc_daytime_module Examples processes { process echo { e
问题内容: 我有一个Python脚本,该脚本使用UTF-8编码写一些字符串。在我的脚本中,我主要使用该函数来强制转换为字符串。看起来像这样: 我不使用Python终端,仅使用标准的Linux Red Hat x86_64终端。我将终端设置为输出utf8字符。 如果我执行此操作: 但是,如果我这样做: 我遇到了典型的错误: 这是为什么? 问题答案: 终端具有一个字符集,Python知道该字符集是什么