分離されたtmuxセッションの「良い」(CPU優先順位)を変更する方法は?

分離されたtmuxセッションの「良い」(CPU優先順位)を変更する方法は?

私はターミナル(stdout)に出力を書き込む非常に簡単なWebクローラーを作成しました。 MySQLテーブルを分離しtmuxて調べた後、スクリプトが遅く実行されているようです。 (2番目のターミナルを開いて、tmux分離前/後の速度を比較してみる必要があります。)

tmuxとにかく、スタンドアロンセッションがあまりにも「良い」かどうか疑問に思います。内部を覗くと、top私が探しているものがわからない。わかりましたtmux。しかし、これは本当にスタンドアロンセッションですか?tmux分割セッションの「親和性」をどのように変更しますか?オペレーティングシステムを介してこれを行いますか、または経由で実行しますかtmux

答え1

あなたの質問に答えるには:既存のプロセスを変更するには電話してください。レニス。これはセッション固有ではなくプロセス固有であるため、tmuxプロセスは直接的な関係はありません。クローラのプロセスID(たとえば、ps xLinuxでは、使用または使用pstree)を見つけて呼び出しますrenice

しかし、2つの誤った仮定があるため、これは役に立ちません。

  • tmux セッションを分離すると、プロセスは再開されますが、そうではありません。
  • Webクローラーの品質が速度に影響を与える可能性はほとんどありません。制限要因はほぼ常にネットワークです。

クローラーがしばらくしてから遅くなる主な理由は、Webサイトで好みの要求が多すぎたため、IPアドレスを制限したためです。これについてできることはあまりありません(ただし、サイトの制限が減りたいと思って最初から要求間隔を広くすることを除いて)。

またはプロセスグループですが、ここでは役に立ちません。

答え2

Webクローラーの優先順位を変更する必要があります。いいえ、tmuxの可能性はありません。 tmuxには子bashがあり、その子はプログラムになります。

私は通常プログラム名でpidを探しますが、そうでなければ実行すると名前 pstree -pを知らなくても階層的に見つけることができます。

renice(1) を使用してプロセスを再開できます。たとえば、次のようになります。

renice 5 1234

または。さらに詳しく、

renice -n 5 -p 1234

プロセス1234を優先順位5に調整

でこれを行うこともできます。 pidと新しい良い値を求める2つのプロンプトをtop押して応答します。r

関連情報