我正在寻找一种从 shell 脚本获取特定进程的交换使用情况的方法。Top 可以显示此信息,但只能在交互模式下显示。批处理模式只会在 .toprc 存在时显示自定义,但您不能在命令行上指定特定的 .toprc。我找到了这个脚本,但我的服务器上的 /proc/*/smaps 中没有交换条目:
# find /proc/ -maxdepth 1 -type d -regex '^/proc/[0-9]+$' -exec grep -Hi swap '{}'/smaps \;
#
Run Code Online (Sandbox Code Playgroud)
所以脚本只为每个进程输出 0。
有没有办法找到这些信息?我在 RHEL5.1 2.6.18-53.el5 x86_64 上。
编辑:
需要明确的是,当我询问“交换使用情况”时,我的意思是已调出到交换文件系统的进程使用的内存量(当前未位于主内存中的内存)。假设没有更好的方法,我将默认使用 (virtual - rss) 通过ps -o vsz,rss.
运行lsof -i(不带 -i 参数)“选择所有 Internet 和 x.25 (HP-UX) 网络文件的列表。” 我正在寻找一种可靠的方法来做相反的事情:显示除 Internet 文件之外的所有内容的列表。可靠,我的意思是一种只需要 lsof 运行一次的方式。两次后续运行(即,正常lsof后跟 alsof -i以进行比较)是不可靠的,因为流失的可能性很大。
提前致谢!
标题说的是。mount 有时会从不安全的端口发出 NFS 挂载/卸载请求。我相信这个问题是由于所有安全端口在非常高的安装活动(amd)之后陷入 TIME_WAIT 状态而引起的。有什么办法可以改变这种行为吗?我不希望从不安全的端口发送请求,无论是否有可用的安全端口。我宁愿挂载在等待安全端口时挂起。不允许来自 NFS 服务器上不安全端口的请求不是一个选项。
我在 mount、nfs 或 mount.nfs 的手册页中没有看到任何用于控制此操作的内容。为了缓解这个问题,我尝试了net.ipv4.tcp_tw_reuse=1,但它似乎没有帮助。
提前致谢。