问题标签 [procfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
70 浏览

mysql - 写操作从何而来?

我在数据库上做了一些实验。在这种情况下,每个查询都会从 TPCH 基准 ( select * from table;) 的一个表中选择所有内容。在我解析每个查询之前和之后/proc/[pid]/io,其中 [pid] 是数据库的进程。这些值的差异应该告诉我查询的 IO。这是 MySQL 的典型输出(秒,MB):

我想知道WCHAR(写字符)值来自哪里。我的查询“读取所有内容”而不是“写入任何内容”(由于“WRITE_BYTES”为空,实际上没有磁盘写入,而是写入缓存/缓冲区?)。我在这里想念什么?

0 投票
2 回答
142 浏览

java - 如何不时查看线程中的值?

我正在用 Java 投影一个监控客户端,它将从/proc. 我有一个主班MonitoringClientProcParser班。我的ProcParser扩展Thread

我认为这是实例化许多(四个:cpu、内存、磁盘和网络)ProcParser对象的好方法,传递我想在构造函数中测量的组件之一。然后,在 run 方法中,我在 then 之间切换 - 每个对象都会解析其中一个。代码将类似于:

我如何不时查看收集的值?另外,从 Java 线程的角度来看,我创建线程(每个主要组件一个)的方式是一种好方法吗?提前致谢。

在 ProcParser 中运行方法。

0 投票
2 回答
2720 浏览

linux - RCHAR 是否包括 READ_BYTES (proc//io)?

我阅读proc/<pid>/io以测量 SQL 查询的 IO 活动,其中<pid>是数据库服务器的 PID。我在每个查询之前和之后读取值以计算差异并获取请求导致读取和/或写入的字节数。

据我所知,该字段READ_BYTES计算实际的磁盘 IO,同时RCHAR包括更多,例如 linux 页面缓存可以满足的读取(请参阅了解 /proc/[pid]/io 中的计数器以 进行澄清)。这导致了一个假设,即RCHAR应该得出一个等于或大于 的值READ_BYTES,但我的结果与这个假设相矛盾。

我可以想象为 Infobright ICE 获得的结果会产生一些小的块或页面开销(值为 MB):

但我完全无法理解 MonetDB 的 IO 计数器(值为 MB):

我对包含的假设有误RCHARREAD_BYTES?有没有办法欺骗 MonetDB 可以使用的内核计数器?这里发生了什么?

我可能会补充一点,我会在每次查询之前清除页面缓存并重新启动数据库服务器。我在 Ubuntu 11.10 上,运行内核 3.0.0-15-generic。

0 投票
1 回答
815 浏览

module - 如何在内核模块中打印 proc/meminfo 的内容?

我目前正在制作一个内核模块,该模块将使用 printk 将 proc/meminfo(具体为 SwapTotal)的某些内容打印到内核中。不幸的是,网上所有的指南都教你如何打开自己的 procfs 文件。是否可以修改 proc/meminfo 的 proc_read 以仅查看 SwapTotal 组件?谢谢!

0 投票
1 回答
505 浏览

linux - Linux Kernel Procfs 多读/写

Linux 内核如何处理对 procfs 的多次读取/写入?例如,如果两个进程同时写入 procfs,是一个进程排队(即内核陷阱实际上阻塞了其中一个进程),还是每个内核都有一个内核线程在运行?

问题是如果您在函数中使用了缓冲区(对于全局空间来说是静态的),您是否必须保护它或者代码是否会按顺序运行?

0 投票
2 回答
41 浏览

multithreading - 查找线程信息

我有一个在我的系统中运行的进程列表以及属于这些进程的线程。我想知道是否有任何方法可以获取有关特定线程的完整信息,例如:优先级、它执行的函数等。

0 投票
1 回答
1387 浏览

bash - 进程环境变量的当前值

我想知道是否有办法从 bash 进程设置环境变量并从另一个进程读取它。

由于环境变量的值对于进程来说是本地的(除了继承),因此不能只export FOO="bar"在终端中执行并从另一个终端中读取它。然后我试图让他们通过/proc/environ,但这就是我得到的:

看来我可以得到该环境变量在进程开始时所具有的值。
它现在的价值如何?

0 投票
1 回答
4086 浏览

c++ - 使用 procf/ 了解进程状态/地位

我正在开发 Solaris。

我知道,如果有一个进程正在运行,就会有一个名为 的文件/proc/<PID>/status,其中<PID>是进程 ID,并且它包含一个名为state.

例如,我使用了我的 shell 进程:

其进程 ID 为 18671。

我编写了一个简单的 C 程序来提取该信息:

它不会产生任何输出:

procfs 的在线资料说我们可以简单地做一个 cat onproc/<pid>/status并检查进程的状态。

但就我而言,它是一个二进制文件。我从来没有在任何地方看到它是二进制的。

有没有办法可以使用简单的 C 程序来获取当前进程的状态?

C++ 解决方案也是可以接受的。

0 投票
1 回答
768 浏览

linux - 嵌入式 linux:/proc/pid/maps 中的第一个偏移量错误?

下面是我努力的细节,它们仅与我的问题部分相关:

在内核版本为 2.6.37.6 的嵌入式 linux (arm) 上的 /proc/pid/maps 映射中,第一行的偏移量(可执行文件本身的代码段)似乎是错误的。

我总是看到这样的一行:

00008000-00061000 r-xp 00000000 00:10 8073509 myprog

(范围是进程地址空间中的地址,权限后面的数字应该是文件的偏移量)

但是,实际偏移量似乎是 0x8000 - 至少,使用此假设的解释看起来更可信。nm 告诉我 myprog 在 0x8000 之前没有代码,所以这也是有道理的。

有人可以指点我在哪里可以找到更多关于此的信息吗?我什么也找不到。

我在做什么:我编写了一个工具来解释 mtrace() 生成的日志,找到可能的内存泄漏,并将它们追溯到分配数据的代码。对于后一步,我从日志中获取指令指针,在 /proc/pid/maps 的运行时映射中查找它以找到有问题的可执行文件或库,并使用它们的 nm-map 来查找实际函数做分配。

这对除可执行文件本身之外的所有内容都具有吸引力。

0 投票
2 回答
8251 浏览

linux - 在 Python 3 中查找给定套接字和 inode 的进程 ID

/proc/net/tcp 为我提供了套接字的本地地址、端口和 inode 编号(例如,0.0.0.0:5432 和 9289)。

鉴于上述信息,我想找到特定进程的 PID。

可以打开 /proc 中的每个编号文件夹,然后使用诸如“$ sudo ls -l /proc/*/fd/ 2>/dev/null | grep socket”之类的 shell 命令检查符号链接是否匹配套接字/inode 编号。然而,这似乎比必要的计算成本更高,因为在任何给定系统上,<5% 的进程具有打开的 TCP 套接字。

找到打开给定套接字的 PID 的最有效方法是什么?我更喜欢使用标准库,我目前正在使用 Python 3.2.3 进行开发。

编辑:从问题中删除了代码示例,因为它们现在包含在下面的答案中。