如何更改分离的 tmux 会话的“niceness”(CPU 优先级)?

如何更改分离的 tmux 会话的“niceness”(CPU 优先级)?

我制作了一个非常简单的网络爬虫,将输出写入终端(stdout),因此我通常知道它的运行速度。在我分离tmux并检查 MySQL 表后,脚本运行速度似乎变慢了。 (我应该打开第二个终端并比较tmux分离之前/之后的速度。)

不管怎样,这让我想知道独立tmux会话是否太“好”了。如果我往里面看,top我真的不知道我在寻找什么。我明白了tmux,但这真的是独立会话吗?我将如何改变分离tmux会话的“友善度”?我会通过操作系统还是通过 来做到这一点tmux

答案1

回答您提出的问题:要更改现有流程的优点,请致电雷尼采。这是每个进程,而不是每个会话,因此 tmux 进程不直接相关。找到爬虫程序的进程ID(例如,ps x在Linux上使用,或使用pstree)并调用renice它。

然而,这对你没有帮助,因为你做了两个错误的假设:

  • 分离 tmux 会话会重新启动该过程 - 但事实并非如此。
  • 网络爬虫的好坏会影响它的速度——这是极不可能的,限制因素几乎总是网络。

爬虫在一段时间后变慢的最可能原因是网站限制了您的 IP 地址,因为它根据自己的口味发出了太多请求。您对此无能为力(除非从一开始就尝试将您的请求间隔得更大一些,希望该网站能够减少对您的限制)。

进程组,但这在这里不太可能有用。

答案2

您需要更改网络爬虫的优先级。不,不太可能是 tmux。 tmux 可能会有一个子 bash,其子项将是程序。

我通常会从程序名称中查找 pid,但除此之外,运行 pstree -p应该允许您在不知道其名称的情况下分层查找它。

您可以使用 renice(1) 重新启动进程,例如:

renice 5 1234

或者。更详细地说,

renice -n 5 -p 1234

将进程 1234 调整为优先级 5

也可以从内部执行此操作top,只需按r并回答询问 pid 和新的好值的两个提示。

相关内容