Linuxでプロセスアフィニティを設定する方法

Linuxでプロセスアフィニティを設定する方法

プロセスアフィニティ(CPUピニングとも呼ばれます)は、実行中のプログラムをすべてのCPUスレッドで実行できるようにするのではなく、単一のスレッド(仮想コア)に割り当てるプロセスです。プロセスアフィニティを設定すると、プログラムが使用するリソースの量をユーザーが正確に決定できるため、有利です。

このガイドでは、LinuxPCで実行中のプログラムのアフィニティを設定する方法について説明します。また、システムリソースをLinuxOS上のプログラムに制限する他の方法についても説明します。

CPU情報を見つける

個々のプログラムを特定のスレッドに固定する方法を説明する前に、Linuxシステムで使用可能なスレッドの数を確認する必要があります。この情報見つけるにはいくつかの方法があります。2つの方法を取り上げます。

CPUスレッド数を確認する最初の方法は、nprocコマンドを使用することです。このコマンドは、Linuxシステムで使用できるプロセッサの生の数を示します。

nprocコマンドを実行して、使用可能なスレッドの数を確認するには、ターミナルウィンドウを開く必要があります。ターミナルウィンドウを開くには、キーボードのCtrl + Alt + TまたはCtrl + Shift + Tを押します。

ターミナルウィンドウを開いた状態で、nprocを実行します

Linuxでプロセスアフィニティを設定する方法

nproc

コマンドを実行すると気付くでしょう。プロンプトに番号が表示されます。この数は、Linuxシステムのスレッド(仮想コア)数です。この情報を後で使用するために保存するには、次の手順を実行します。

nproc >>〜/ cpu-count.txt

場合NPROCのコマンドは、単にあなたのために十分な情報ではありません、あなたのCPUスレッドに関する全体の多くより多くの情報を提供し、より良いコマンドラインツールがあります。これはCPU情報と呼ばれます。インストール方法は次のとおりです。

まず、ターミナルウィンドウが開いていることを確認します。次に、使用しているLinuxオペレーティングシステムに対応するインストールコマンドを以下に入力します。

Ubuntu

Ubuntu Linuxでは、以下のAptパッケージマネージャーコマンドを使用してCPU情報をインストールできます。

sudo apt install cpuinfo

Debian

Debian Linuxを使用している場合は、次のApt-getコマンドを使用してCPU情報を起動して実行できます。

sudo apt-get install cpuinfo

Arch Linux

Arch Linuxは、ターミナルウィンドウで次のPacmanコマンドを使用して、LinuxにCPU情報ツールを簡単にインストールできます。

sudo pacman -S python-py-cpuinfo

Fedora

Fedora Linuxを使用していますか?ターミナルで次のDnfコマンドを実行して、CPU情報を入手します。

sudo dnf install python3-cpuinfo

OpenSUSE

OpenSUSE Linuxユーザーですか?以下のZypperコマンドを使用して、CPU情報を起動して実行します。

sudo zypper install python3-py-cpuinfo

Linux PCでCPU情報プログラムを設定したら、それを使用してCPU情報を調べ、処理するスレッドの数を正確に判断できるようにします。

以下のcpu-infoコマンドを使用して、CPUの読み取り値を取得します。

注:Arch Linux、Fedora、またはOpenSUSE Linuxの場合は、cpu-infoではなくcpuinfoを実行する必要がある場合があります。

Linuxでプロセスアフィニティを設定する方法

cpu-info

コマンドを実行すると、コアカウントと論理カウントの両方が表示されます。論理カウントは、操作する必要のあるスレッドの数です。このガイドに関しては、論理情報が最も重要です。次のコマンドを実行して、CPU情報をテキストファイルに保存してください。

cpu-info >>〜/ cpu-count.txt

Linuxでプロセスアフィニティを設定する方法

Linux PCでプロセスアフィニティを設定するには、組み込みプログラムTasksetを使用する必要があります。キーボードのCtrl + Alt + TまたはCtrl + Shift + Tを押して、ターミナルウィンドウを開きます。次に、そこから、以下のステップバイステップの手順に従って、実行中のプロセスをアフィンする方法を学習します。

ステップ1: pidofを実行し、続いてアプリの名前を実行して、実行中のプログラムのプロセスIDを見つけます。たとえば、ThunderbirdのプロセスIDを見つけるには、以下のコマンド例を実行します。

Linuxでプロセスアフィニティを設定する方法

pidofサンダーバード

ステップ2:アプリのプロセスIDをメモします。次に、それを次のタスクセットコマンドの例に接続します。

注:thread_numberを、プログラムを配置するCPUスレッドに変更する必要があります。あなたは、プロセスIDにprocess_idをを変更しなければならないとい pidofあなたはアフィンたいとタスクセット

sudoタスクセット-cpthread_number process_id&

新しく提携したプログラムを確認する必要がありますか?実行タスクセット-pそれはあなたがステップ2で指定したCPUのスレッド上で実行されていることを確認するために、プログラムのプロセスIDに対しては。

タスクセット-pprocess_id

タスクセットの詳細

Tasksetの詳細については、マニュアルを読む必要があります。mantasksetコマンドを実行します。

Linuxでプロセスアフィニティを設定する方法

マニュアルタスクセット

man tasksetコマンドを実行すると、Tasksetアプリケーションに関するすべての詳細なマニュアルが表示されます。アプリがどのように機能するかを理解するのに役立つので、それを見てください。完了したら、qを押して終了します。


UbuntuサーバーにGitLabをインストールする方法

UbuntuサーバーにGitLabをインストールする方法

GitLab を Ubuntu サーバー上で動作させたいと考えていますか? GitLab は、GitHub のようなサービスに代わる、強力な自己ホスト可能な代替サービスです。これを使用すると、次のことができます

SELinux による Ubuntu Linux サーバーの保護

SELinux による Ubuntu Linux サーバーの保護

SELinux をインストールしてアクティブ化することで、Ubuntu Linux サーバーにセキュリティを追加する方法を学びます。

Cockpit を使用して Linux サーバー上で NFS を構成する

Cockpit を使用して Linux サーバー上で NFS を構成する

Linux サーバーに NFS 共有をマウントする簡単な方法が必要ですか? Cockpit アプリを使用して NFS 共有をマウントする方法を学びます。

Ubuntu 22.04 LTS にアップグレードする方法

Ubuntu 22.04 LTS にアップグレードする方法

Ubuntu 22.04 の長期サポートが登場しました! デスクトップまたはラップトップを最新の Ubuntu リリースにアップグレードする方法を学びます。

最新の Nvidia GPU ドライバーを Linux にインストールする方法

最新の Nvidia GPU ドライバーを Linux にインストールする方法

最新の Nvidia GPU ドライバーを Linux にインストールする方法

Dockerコンテナにファイルを転送する方法

Dockerコンテナにファイルを転送する方法

ファイルを Docker コンテナに転送する必要がありますか? Docker cp ツールを使用すると、コンテナーとの間でファイルを簡単に移動できます。

Linux に DEB ファイルをインストールする方法

Linux に DEB ファイルをインストールする方法

.DEB ファイルとは何ですか? それを使って何をしますか?Linux PC に DEB ファイルをインストールするさまざまな方法を学びましょう。

GOG Galaxy を Linux 上で動作させる方法

GOG Galaxy を Linux 上で動作させる方法

GOG.com のゲームを所有していますか? ビデオ ゲームを楽しむために Linux PC に GOG Galaxy クライアントをセットアップしたいですか? このガイドに従ってください。

CentOS に Docker エンジンをインストールする方法

CentOS に Docker エンジンをインストールする方法

Docker Engine は、Linux およびその他のプラットフォーム用のオープン コンテナ化プログラムです。Docker Engine は、次のように動作する自己完結型コンテナを管理します。

Ferdi とすべてのチャットを 1 つにまとめる方法

Ferdi とすべてのチャットを 1 つにまとめる方法

Slack、Discord、その他多くの生産性向上ツールを Linux システムにインストールすることにうんざりしていませんか? それらをすべて 1 つに結合できたらいいのにと思いますか