小编Hai*_*ong的帖子

GNU Parallel:立即按作业顺序一次显示作业 stderr/stdout

我知道 GNU Parallel 缓冲区 std/stderr 因为它不希望作业输出被破坏,但是如果我用 运行我的作业parallel do_something ::: task_1 task_2 task_3,无论如何要立即显示 task_1 的输出,然后在 task_1 完成后,task_2 一直到它的当前输出等

如果 Parallel 不能解决这个问题,有没有其他类似的程序可以解决这个问题?

shell output gnu-parallel

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

`cat /proc/$pid/cmdline` 怎么能花几秒钟的时间?

我昨天在我们的一台服务器上遇到了这种奇怪的行为。pspgrep并且htop(在启动时)非常慢。strace ps表明read('/proc/$pid/cmdline) 在某些进程上花费了几秒钟。为什么会这样?

一些观察:

  • 进程可执行文件在 NFS 上
  • 进程(大约 20 多个)同时在 NFS 上执行unlinksymlink操作文件
  • 它们是从同一个父进程分叉出来的
  • 有 80GB 的 RAM 可用(主要是缓存),但交换(仅 4GB)已被充分使用
  • 我运行while true; do cat /proc/$pid/status; sleep .1; donecat如果StateS或 则立即返回R,但是当State是时需要几秒钟D

我做了一些谷歌搜索,发现了一些 SO 答案,表明当State是时D,阅读/proc/$pid/cmdline会停滞。真的吗?这是如何运作的?为什么/proc/$pid/cmdline在程序开始之前设置的 会受到之后它所做的事情的影响?

ps swap proc

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

标签 统计

gnu-parallel ×1

output ×1

proc ×1

ps ×1

shell ×1

swap ×1