Centosシステムプロセス管理

1、 プロセスとは

プロセスは、開始された実行可能プログラムの実行中のインスタンスです。プロセスには、次のコンポーネントがあります。

**1.1****割り当てられたメモリのアドレススペース; **

1.2****所有権の資格情報や特権などのセキュリティ属性

**1.3****プログラムコードの実行の1つ以上のスレッド; **

1.4****プロセスステータス

**プログラム:**バイナリファイル、静的/ bin / date、/ usr / sbin / httpd、/ usr / sbin / sshd、/ usr / local / nginx / sbin / nginx。

**プロセス:**は、ライフサイクルと実行ステータスを備えた、動的なプログラム実行のプロセスです。

2、 プロセスのライフサイクル

次のように説明されています:

親プロセスは、独自のアドレススペース(フォーク** [fɔ:k] **フォーク)をコピーして、新しい(子)プロセス構造を作成します。新しいプロセスにはそれぞれ、セキュリティの追跡のニーズを満たすために一意のプロセスID(PID)が割り当てられます。 PIDと親プロセスID(PPID)は、子プロセス環境の要素です。どのプロセスでも子プロセスを作成でき、すべてのプロセスは最初のシステムプロセスの子孫です。

centos5または6のPID1のプロセスは次のとおりです。 init

centos7のPID1のプロセスは次のとおりです。 systemd

**ゾンビプロセス:**プロセスはフォークを使用して子プロセスを作成します。子プロセスが終了し、親プロセスが子プロセスのステータス情報を取得するためにwaitまたはwaitpidを呼び出さない場合、子プロセスのプロセス記述子は引き続きシステムに保存されます。この種のプロセスはゾンビプロセスと呼ばれます。

****を自分の言葉で表現します。親プロセスが終了し、子プロセスが終了しない場合、これらの子プロセスは親プロセスによって管理されず、ゾンビプロセスになります。

3、 プロセス属性

**プロセスID(PID):**はプロセスを区別するために使用される一意の値です

親プロセスのID(PPID)

**ユーザーID **(UID)およびプロセスが属するグループ(GID)

**プロセスステータス:**ステータスは、実行中のR、スリープ中のS、ゾンビZに分けられます。

プロセス実行の優先順位

プロセスが接続されている端末の名前

**プロセスリソースの占有:**占有されているリソースのサイズ(メモリ、CPU使用率)など

4、 psを使用してプロセスツールを表示します

4.1 :一般的に使用されるパラメータ:

**a:**現在の端末に関連付けられているすべてのプロセスを表示します

**u:**ユーザーフォーマットに基づいて表示( U:ユーザーIDのすべてのプロセスを表示)

**x:**端末で区別されずにすべてのプロセスを表示します

4.2 一般的に使用されるオプションの組み合わせ

[ root@docker-01~]# ps -aux|more ##BSDフォーマットを使用してプロセスを表示します
 USER       PID %CPU %MEM   VSZ   RSS TTY     STAT START   TIME COMMAND
 root         10.00.01281486684?Ss Nov 010:09/usr/lib/syste
 md/systemd --switched-root--system--deserialize22
 root         20.00.000?S010年11月:00[kthreadd]
 root         30.00.000?S010年11月:00[ksoftirqd/0]
 root         50.00.000?       S<010年11月:00[kworker/0:0H]
 root         60.00.000?S010年11月:00[kworker/u8:0]
 root         70.00.000?S010年11月:00[migration/0]
 root         80.00.000?S010年11月:00[rcu_bh]
 root         90.00.000?S010年11月:12[rcu_sched]
 root        100.00.000?       S<010年11月:00[lru-add-drain
 
 ## 含まれる情報は次のとおりです
 USER:プロセスを実行しているユーザー
 PID:プロセスID
 %CPU:CPU使用率
 %MEM:メモリ使用量
 VSZ:仮想メモリを占有する
 RSS:実メモリ常駐メモリを占有します
 TTY:プロセスが実行される端末
 STAT:プロセスステータスman ps(/STATE)            
  Rラン
  Sは睡眠を中断することができます睡眠
  D途切れない睡眠
  Tはプロセスを停止しました
  Zゾンビプロセス
  Xデッドプロセス
      
  Ssのプロセスリーダー、親プロセス
  S<<優先度の高いプロセス
  優先度の低いSNSプロセス
  R++フォアグラウンドのプロセスグループを表します
  Slはスレッドとして実行されます
 START:プロセス開始時間
 時間:プロセスがCPUを占有する合計時間
 コマンド:プロセスファイル、プロセス名
 
 [ root@docker-01~]# ps -ef|head ##進行状況を標準形式で表示することです
 UID       PID PPID C STIME TTY         TIME CMD
 ルート100Nov 01?00:00:09/usr/lib/systemd/systemd --switched-root--system--deserialize22
 ルート2001Jan01?00:00:00[kthreadd]
 ルート320110101?00:00:00[ksoftirqd/0]
 ルート520110101?00:00:00[kworker/0:0H]
 ルート6 2011年1月1日?00:00:00[kworker/u8:0]
 ルート7 2011年1月1日?00:00:00[migration/0]
 ルート820110101?00:00:00[rcu_bh]
 ルート9201101 01?00:00:12[rcu_sched]
 ルート10201101 01?00:00:00[lru-add-drain]
 ## 含まれる情報は次のとおりです
 UID:これらのプロセスを開始したユーザー
 PID:プロセスのID
 PPID:親プロセスのプロセスID
 C:プロセスのライフサイクルにおけるCPU使用率
 STIME:プロセスが開始されたシステム時間
 TTY:プロセスが実行されている端末デバイスを示します。それが表示された場合?端末とは何の関係もないことを示します。この種のプロセスは通常、カーネルモードプロセスです。さらに、tty1-tty6は、ptsの場合、このマシンのログインプログラムです。/0などの場合、仮想端末で実行されているプロセスを意味します。
 TIME:実行中のプロセスが占める合計CPU時間
 CMD:開始したプログラムの名前

4.3 プロセスの指定された列を並べ替えます

[ root@docker-01~]# ps aux --sort %cpu |less ##ソート昇順
 [ root@docker-01~]# ps aux --sort -%cpu |less ##降順で並べ替え
 [ root@docker-01~]# ps aux --sort rss |less
 [ root@docker-01~]# ps aux --sort -rss |less

4.4 中断できない状態

[ root@docker-01~]# tar -zcvf usr-tar.gz /usr/
 ### 次に、Sによって別の端末でステータスを確認し続けます+,R+Dになる+[root@docker-01~]# ps -axu|grep tar
 root     254263.80.0123688 1552pts/0   R+10:310:01 tar -zcvfusr-tar.gz /usr/
 root     254470.00.0112724  984pts/1   S+10:310:00 grep--color=auto tar
 root     254263.80.0123688 1552pts/0   D+10:310:01 tar -zcvfusr-tar.gz /usr/
 root     254470.00.0112724  984pts/1   S+10:310:00 grep--color=auto tar

5、 システム内で最も多くのCPUを使用するプロセスを見つけます

5.1 topを実行して、CPUを最も多く使用しているプロセスを見つけ、大文字のPを押すと、CPU使用率で表示を並べ替えることができます

[ root@docker-01~]# top
 top-10:48:16 up 1day,18:41,  2users, load average:0.00,0.04,0.08
 Tasks: 111total,   2running, 109sleeping,   0stopped,   0zombie
 %Cpu(s):0.1 us,0.1 sy,0.0 ni,99.8 id,0.0 wa,0.0 hi,0.0 si,0.0 
 KiB Mem : 16266520total, 11269388free,  2162204used,  2834928buff/cache
 KiB Swap:  2097148total,  2097148free,        0used. 13687952avail Mem 
 
 PID USER     PR NI   VIRT   RES   SHR S %CPU %MEM     TIME+COMMAND  
 17427 kibana    20025151641.3g  10324S   0.78.39:05.29 node    
 17255 elastic+2004713976308280 15708S   0.31.911:09.30 java  

**5.2 Linuxシステムでは、プロセスは最大100%のcpuを使用できますよね? **

[ root@localhost ~]# top
 top-10:51:24 up 61days,23:00,  2users, load average:46.56,48.38,34.85
 Tasks: 267total,   1running, 266sleeping,   0stopped,   0zombie
 Cpu(s):96.9%us,1.6%sy,0.0%ni,0.3%id,0.0%wa,0.5%hi,0.5%si,0.2%st
 Mem: 71545156k total, 71079896k used,   465260k free,   58836k buffers
 Swap: 2097148k total,       0k used, 2097148k free, 18012268k cached
 
 PID USER     PR NI VIRT RES SHR S %CPU %MEM   TIME+COMMAND           
 13073 smgadmin  20  05451m 1.4g 21m S 130.52.0184:57.92 java              
 30753 smgadmin  20  04801m 1.3g 21m S 92.72.020:14.24 java    
 ## java(ダーティカウの脆弱性、特権のエスカレーションに使用)プロセスが130を使用していることがわかります.5%

注意

4コアのcpuを使用している場合は、400%実行できます。

6、 プロセスによって開かれたファイル、ファイルを開くプロセス、プロセスによって開かれたポート(TCP、UDP)を表示します

[ root@docker-01~]# yum install lsof 
 [ root@docker-01~]# vim a.txt
 [ root@docker-01~]# ps -axu | grep a.txt
 root     255260.00.0151532 5200pts/0   S+10:550:00 vima.txt
 root     255600.00.0112724 1004pts/1   S+10:570:00 grep--color=auto a.txt
 [ root@docker-01~]# lsof -p 25526 ##通常、どのファイルが読み取られているかを示すために使用されます。
 [ root@docker-01~]# lsof -i :22 ##ポートを表示するため、またはハッカーによって開かれたバックドアポートを使用しているプロセスを表示するために使用されます

**7、 プロセス優先度nice **

7.1 プロセスのスケジューリングとマルチタスク

各CPU(またはCPUコア)は一度に1つのプロセスしか処理できません。タイムスライステクノロジーにより、Linuxが実行できるプロセス(およびスレッド)の実際の数は、使用可能なCPUおよびコアの実際の数を超える可能性があります。 Linuxカーネルプロセススケジューラは、CPUコア上の複数のプロセスをすばやく切り替え、複数のプロセスが同時に実行されているという印象をユーザーに与えます。

**7.2 相対優先度nice **

すべてのプロセスが他のプロセスほど重要であるとは限らないため、プロセススケジューラは、プロセスごとに異なるスケジューリング戦略を使用するように指示できます。従来のシステムで実行されているほとんどのプロセスで使用されるスケジューリング戦略は** SCHED_OTHER **(SCHED_NORMALとも呼ばれます)ですが、さまざまな目的のための他のスケジューリング戦略があります。

SCHED_OTHERスケジューリング戦略によって実行されるプロセスの相対的な優先順位は、プロセスのナイス値と呼ばれ、40の異なるレベルのナイス値を持つことができます。

**nice値が高いほど、優先度が低くなります(たとえば、+ 19)。プロセスは、他のプロセスにCPU使用率を放棄する可能性があります。 nice値が低いほど、優先度が高い(-20など)ほど、プロセスはCPUを放棄する傾向が少なくなります。 ****

7.3 素敵なスタートアップレベルの設定

 ## プロセスを開始すると、通常、親プロセスのniceレベルが継承され、デフォルトは0です。
 [ root@docker-01~]# sleep 6000&[1]25601[root@docker-01~]# ps axo command,pid,nice |grep sleep
 sleep6000                 256010
 grep--color=auto sleep    256030
 ## 起動レベルを5として指定します[root@docker-01~]# nice -n 5 sleep 6000&[2]25605[1]殺されたsleep6000
 [ root@docker-01~]# ps axo command,pid,nice |grep sleep
 sleep6000                 256055
 grep--color=auto sleep    256070
 ## 既存のプロセスの適切なレベルを変更する
 25605( プロセスID)古い優先度は5で、新しい優先度は-15[root@docker-01~]# ps axo command,pid,nice |grep sleep
 sleep6000                 25605-15
 grep--color=auto sleep    256110

Recommended Posts

Centosシステムプロセス管理
セントスシステム管理
Centos6システムのブートロードプロセス
Linuxcentosシステムの起動プロセス
CentOS7はIT資産管理システムSnipe-ITをインストールします
01 CentOS7.6スイッチシステム言語
CentOS7.5-1804システムカーネルのアップグレード
CentOSシステムの起動プロセスを知っていますか?
VirtualBoxはCentOSシステムをインストールします
CentOSシステムの起動プロセスを知っていますか?
CentOS7でGraylogオープンソースログ管理システムを展開する
Centos各種時間[システム時間/ハードウェア時間]
CentOS8コンテナ管理ツールPodman
Centos7システムで一般的に使用されるコマンド
グラフィカルなcentosインストールの詳細なプロセス
Centosシステムにdockerをインストールします
Centosシステムはタイムゾーンを変更します
centos6.5:gccアップグレード(5.2.0)プロセスレコード
Centosバックエンドシステムのセットアップ記録
Centos7はLVMディスク管理を作成します
Centos7インストールtomcatプロセスの紹介
CentOS8 Linux 8.0.1905のインストールプロセス(図)
CentOS6.Xシステム初期化スクリプト
Centos7に関する注意事項|オペレーティングシステムの起動プロセス、Linuxユーザーおよび権限
CentOS 8(2)
Pythonは名刺管理システムを実現
Python名刺管理システムの開発
Python版名刺管理システム
CentOS7.Xシステムのインストールと最適化
CentOS 8(1)
CentOS7.2インストールlepusデータベース監視システム
CentOS7システムのインストールと構成のグラフィックチュートリアル
CentOS7.6オペレーティングシステムをインストールするためのグラフィックKVM
CentOS7システム増加スワップ操作方法の例
LinuxカーネルのコンパイルとCentOSシステムのインストール
Centos7.6オペレーティングシステムのインストールと最適化の記録
LinuxCentOS7システムにmysql8.0.13バージョンをインストールします
[Centos8]ドッカーをインストールするでこぼこのプロセス
CentOS7システムyumMySQL5.7をインストールする方法
CentOS7システムの再起動後のIPアドレスの問題
CentOS7ビルドFastDFS分散ファイルシステム(下記)