【Linuxコマンド徹底解説】 190. Linuxコマンド徹底解説:groupaddとfree

グループ追加

新しいワークグループを作成するために使用されます

追加情報

groupaddこのコマンドは新しいワークグループを作成するために使用され、新しいワークグループ情報がシステム ファイルに追加されます。

文法

groupadd [选项] [参数]

オプション

  • -g: 新しいワークグループの ID を指定します。
  • -r: システム ワークグループを作成します。システム ワークグループのグループ ID は 500 未満です。
  • -K: 設定ファイルを上書きします/ect/login.defs
  • -o: 一意でないグループ ID を持つワークグループを追加できます。

パラメータ

  • グループ名: 新しいワークグループのグループ名を指定します。

新しいグループを作成し、システムに参加するグループ ID を設定します。

groupadd -g 344 jsdigname

このとき、/etc/passwdファイル内にグループID(GID)が344の項目が生成されます。

無料

メモリ使用量を表示する

追加情報

freeこのコマンドは、現在のシステムの未使用および使用済みメモリの量を表示でき、また、カーネルによって使用されているメモリ バッファも表示できます。

文法

free [选项]

オプション

  • -b: メモリ使用量をバイト単位で表示します。
  • -k: メモリ使用量をKB単位で表示します。
  • -m: メモリ使用量を MB 単位で表示します。
  • -g: メモリ使用量を GB 単位で表示します。
  • -o: バッファ調整欄を表示しません。
  • -s<间隔秒数>: メモリ使用量を継続的に観察します。
  • -t: メモリ合計列を表示します。
  • -V:バージョン情報を表示します。

メモリ使用量情報を合計として表示します。

free -t

メモリ使用量情報を定期的にクエリし、10 秒ごとにコマンドを実行します。

free -s 10

メモリ使用量を表示:

free -m
合計 使用済み 無料 共有 バッファ キャッシュされた
2016年 1973年 42 0 163 1497年
-/+ バッファ/キャッシュ 312 1703
スワップ 4094 0 4094

Memの最初の部分の説明:

  • total: 合計メモリ。
  • used: 使用されたメモリの量。
  • free: 空きメモリの数。
  • shared: 現在は非推奨です。
  • buffers:キャッシュメモリの数;
  • cached: キャッシュメモリの数。

関係:total = used + free

2 番目の部分 (-/+ バッファ/キャッシュ) の説明:

  • (-buffers/cache)使用されているメモリの数:Mem行の最初の部分used – buffers – cached
  • (+buffers/cache)空きメモリの数:Mem行の最初の部分free + buffers + cached

-buffers/cache反映されているのはプログラムによって実際に消費されたメモリであり、+buffers/cache反映されているのは割り当て可能なメモリの総量であることがわかります。

3 番目の部分はスワップ パーティションを参照します。

出力の 4 行目はSWAP、通常仮想メモリと呼ばれるスワップ パーティションに関するものです。

差分: 2 行目memの使用/空き ( ) と 3 行目の使用/空き (-/+ バッファ/キャッシュ) の違い。2 つの違いは使用の観点にあります。最初の行は OS の観点からのものです。OS ではbuffers/cached使用されるため、使用可能なメモリは 2098428KB で、カーネル ( を含む) の使用メモリは 30841684KB です。 OS) は、+アプリケーション (X、Oracle など) によって使用される +バッファー+キャッシュを使用します。

buffers/cached3 行目は、アプリケーションの観点から、buffer/cached はファイル読み取りのパフォーマンスを向上させるためのものであるため、アプリケーション

したがって、アプリケーションの観点から見ると、利用可能なメモリ = システムの空きメモリ + バッファ + キャッシュとなります。たとえば、このマシンで使用可能なメモリは次のとおりです。

18007156 = 2098428KB + 4545340KB + 11363424KB

次に、メモリがいつ、どのような方法でスワップされるかを説明します。

使用可能なメモリが定格値より少ない場合、スワップが発生します。評価の見方:

cat /proc/meminfo

スワップにより、システムで使用される物理ページの数が次の 3 つの方法で削減されます。

  • バッファーとページキャッシュのサイズを削減し、
  • システム V タイプのメモリ ページをスワップアウトします。
  • ページ (アプリケーションによって占有されているメモリ ページ、つまり不十分な物理メモリ) をスワップアウトまたは破棄します。

実際、スワップを控えめに使用してもシステムのパフォーマンスには影響しません。

ではbuffers、 と はcached両方ともキャッシュですが、この 2 つの違いは何でしょうか?

ディスク アクセス効率を向上させるために、Linux はいくつかの複雑な設計を行っており、dentryキャッシュ (ファイル パス名から i ノードへの変換を高速化するために VFS で使用される) に加えて、Linux は 2 つの主要なキャッシュ メソッドも採用しています。

  • バッファ キャッシュ: ディスク ブロックの読み取りおよび書き込み用。
  • ページ キャッシュ: ファイル i ノードの読み取りおよび書き込み用。

readこれらのキャッシュは、I/O システム コール ( 、writeなどgetdents) の時間を効果的に短縮します。ディスク操作は論理レベル (ファイル システム) と物理レベル (ディスク ブロック) に分けられ、これら 2 つのキャッシュはそれぞれ論理レベルと物理レベルのデータをキャッシュします。

ページ キャッシュは実際にはファイル システム用のファイルのキャッシュであり、ファイル レベルのデータがページ キャッシュにキャッシュされます。ファイルの論理層は実際の物理ディスクにマッピングする必要があり、このマッピング関係はファイル システムによって完成されます。ページ キャッシュ内のデータを更新する必要がある場合、バッファ キャッシュはディスク ブロックをキャッシュするため、ページ キャッシュ内のデータはバッファ キャッシュに渡されます。ただし、カーネル 2.6 バージョン以降、この処理は非常に単純になり、実際のキャッシュ操作はなくなりました。

バッファ キャッシュはディスク ブロックのキャッシュです。つまり、ファイル システムがない場合、ディスク上で直接動作するデータはバッファ キャッシュにキャッシュされます。たとえば、ファイル システムのメタデータはバッファにキャッシュされます。キャッシュ。

簡単に言うと、ページ キャッシュはファイル データのキャッシュに使用され、バッファ キャッシュはディスク データのキャッシュに使用されます。ファイル システムがある場合、ファイルを操作するときにデータはページ キャッシュにキャッシュされますが、dd他のツールを使用してディスクの読み取りと書き込みを直接行う場合、データはバッファ キャッシュにキャッシュされます。

したがって、Linux に注目すると、swap のスワップ領域を使用しない限り、メモリが少なすぎることを心配する必要はありません。大量のスワップを頻繁に使用する場合は、物理メモリの追加を検討する必要があるかもしれません。これは、メモリが十分であるかどうかを判断するために Linux で使用される標準でもあります。

アプリケーション サーバーの場合、通常は 2 行目の +buffers/cache のみを確認します。これは、空きメモリがアプリケーションに対して少なすぎることを意味し、プログラムの最適化またはメモリの追加を検討する時期が来たことを意味します。

ゼロから学ぶpython

[Pythonをゼロから学ぶ] 92. Pythonのリクエストライブラリを使用してHTTPリクエストを送信し、応答を処理する
[Pythonをゼロから学ぶ] 91. デコレータと辞書を使用して単純なWebアプリケーションでリクエストパスを管理する
[Pythonをゼロから学ぶ] 93. 辞書を使用する管理 リクエストパス
【ゼロから学ぶPython】 89. WSGIを使ってシンプルで効率的なWebサーバーを構築する
【ゼロから学ぶPython】 88. WSGIインターフェースの詳細解説:シンプルで効率的なWeb開発を実現する
【ゼロから学ぶPython】 87. 手動PythonでHTTPサーバーを構築する 実装とマルチスレッド同時処理
【Pythonをゼロから学ぶ】 86. HTTPプロトコルとブラウザとサーバー通信におけるその役割を深く理解する
【Pythonをゼロから学ぶ】 85. 並列コンピューティング技術の応用Pythonのプロセスプールで
【Pythonをゼロから学ぶ】】 84. スレッドとプロセスを深く理解する
【Pythonをゼロから学ぶ】 83. Pythonのマルチプロセスプログラミングとプロセスプールの利用
【Pythonをゼロから学ぶ】 82. チャットプログラムマルチスレッドに基づいた実装
[ゼロから学ぶ Python] 81. Python の詳細 スレッド通信とキューの応用
[ゼロから学ぶ Python] 80. グローバル変数へのスレッド アクセスとスレッド セーフティの問題
[ゼロから学ぶ Python] 79. スレッド アクセスグローバル変数とスレッドセーフティの問題
[Pythonをゼロから学ぶ] 78. ファイルダウンロード事例
[Pythonをゼロから学ぶ] 77. TCPサーバーのプログラミングと注意事項
[Pythonをゼロから学ぶ] 76. サーバーとクライアント: ネットワーク通信の主要コンポーネント
[Pythonを学ぶ] 75. TCPプロトコル:信頼性の高いコネクション指向の伝送層通信プロトコル
【ゼロから学ぶPython】 74. UDPネットワークプログラム:ポートの問題とバインディング情報を詳しく解説
【ゼロから学ぶPython】 73. UDPネットワークプログラム – データの送信
【ゼロから学ぶPython】 72. ソケット通信とソケットの作成方法
【ゼロから学ぶPython】 71. ネットワークポートとその機能
【ゼロから学ぶPython】 70. ネットワークの通信方式とその応用:ルータへの直接通信から複数のネットワーク接続まで
【ゼロから学ぶPython】 69. ネットワーク通信とIPアドレス分類分析
[Pythonをゼロから学ぶ] 68. Python正規表現の貪欲モードと非貪欲モード
[Pythonをゼロから学ぶ] 67. Pythonのreモジュール: 正規置換と高度なマッチング技術
[Pythonをゼロから学ぶ] 66 .正規表現を深く理解する:パターンマッチングとテキスト処理のための強力なツール
【Pythonをゼロから学ぶ】 65. Pythonの正規表現修飾子とその応用を詳しく解説
【Pythonをゼロから学ぶ】 64. re.compileメソッドPython正規表現で使い方を詳しく解説
【ゼロから学ぶPython】 63. 正規表現におけるre.Matchクラスとその属性・メソッドの紹介
【ゼロから学ぶPython】 62. Python正規表現:強力な文字列マッチングツール
【学ぶ】ゼロから学ぶPython】 61. Pythonのプロパティ属性の詳しい解説と応用例
【ゼロから学ぶPython】 60. Exploration Generator:反復のための柔軟なツール
【ゼロから学ぶPython】 59. Iterator:データトラバーサルを最適化するための効率的なツール
【 Pythonをゼロから学ぶ】58. Pythonのカスタム例外と例外の発生方法
【ゼロから学ぶPython】 57. Pythonでwithキーワードを使ってリソースを正しく閉じる
【ゼロから学ぶPython】 56. プログラミングにおける例外処理の重要性と応用
【ゼロから学ぶPython】 55. Pythonのシリアライズとサム デシリアライズ、 JSONとpickleモジュールの応用
【ゼロから学ぶPython】 54. メモリへのデータの書き込み
【ゼロから学ぶPython】 53. CSVファイルとPythonのCSVモジュール
【ゼロから学ぶPython】 52. ファイルの読み書き - Pythonファイル操作ガイド
[ Pythonをゼロから学ぶ】 51. Pythonでファイルとそのア​​プリケーションを開く・閉じる
【Pythonをゼロから学ぶ】 49. Pythonのオブジェクト関連の組み込み関数とその使い方
【Pythonをゼロから学ぶ】 48. 継承と多重化について詳しく解説Python の継承
[Python をゼ​​ロから学ぶ] 47. オブジェクト指向プログラミングにおける継承の概念と基本的な使用法
[Python をゼ​​ロから学ぶ] 46. Python デザイン パターンの __new__ および __init__ メソッドとシングルトンの分析
[Python をゼ​​ロから学ぶ] 45 . Pythonのクラスメソッドと静的メソッド
【ゼロから学ぶPython】 44. オブジェクト指向プログラミングのプライベートプロパティとメソッド
【ゼロから学ぶPython】 43. Pythonのオブジェクト指向プログラミングの例 プロパティとクラス属性
【ゼロから学ぶPython】 42. Pythonの組み込みプロパティとメソッド
【ゼロから学ぶPython】 41. Pythonの魔法のメソッド(2)
【ゼロから学ぶPython】 40. Pythonの魔法のメソッド(1)
【ゼロから学ぶPython】 39. オブジェクト指向の基本構文と応用例
【ゼロから学ぶPython】 38. Pythonパッケージの使い方とインポート方法
【ゼロから学ぶPython】 37. Pythonカスタムモジュールの使い方と注意点
【ゼロから学ぶPython】ゼロから学ぶ】Pythonを学ぶ】 36. Pythonでサードパーティパッケージ管理にpipを使う方法とテクニック
【ゼロから学ぶPython】 35. Pythonの共通システムモジュールとその使い方
【ゼロから学ぶPython】 34. インポートの詳細説明Pythonモジュールの使い方と使い方
【ゼロからPythonを学ぶ】 33. デコレータの役割(2)
【ゼロからPythonを学ぶ】 32. デコレータの役割(1)
【ゼロからPythonを学ぶ】 31. 上位概念を深く理解するPythonの順序関数とクロージャ
【Pythonをゼロから学ぶ】30. 再帰関数と無名関数を深く理解する
【Pythonをゼロから学ぶ】29. 「関数パラメータの詳細解説」 - Python関数パラメータのさまざまな使い方を理解する
【 Pythonをゼロから学ぶ】28. Python変数のローカル変数とグローバル変数
【Pythonをゼロから学ぶ】 27. Pythonの関数と入れ子呼び出しの使い方
【Pythonをゼロから学ぶ】 25. 関数:コード作成を効率化するツール
【ゼロから学ぶPython】 24. Pythonの文字列操作とトラバーサルメソッド
【ゼロから学ぶPython】 23. Pythonのセット(set)の使い方とよく使う操作
【ゼロから学ぶPython】 22. 追加、削除、変更、 Pythonのクエリ辞書変数
[ゼロから学ぶPython] 21. Pythonのタプルと辞書
【ゼロから学ぶPython】 20. Pythonのリスト操作スキルと例題
【ゼロから学ぶPython】 19. リストのループとリストのネストの応用
【ゼロから学ぶPython】 18. Pythonのリストの基本操作を詳しく解説(1)
【ゼロから学ぶPythonより】 17. Pythonの文字列のフォーマット方法(2)
【ゼロから学ぶPython】 16. Pythonの文字列のフォーマット方法(1)
【ゼロから学ぶPython】 15. 文字列と文字列を深く理解する文字セットエンコーディング
【ゼロから学ぶPythonから】14. Pythonの文字列に対するよくある操作(2)
【ゼロから学ぶPython】13. Pythonの文字列に対する共通の操作(1)
【ゼロから学ぶPython】12. Pythonの文字列の操作と応用
【 Pythonをゼロから学ぶ】 11. Pythonのループ文と制御フロー
【Pythonをゼロから学ぶ】 10. Pythonの条件文とifの入れ子を詳しく解説
【Pythonをゼロから学ぶ】 09. Pythonの条件判定文
【Pythonをゼロから学ぶ】 08 . Pythonでわかるビット演算子、演算子の優先順位
【ゼロから学ぶPython】 07. Pythonの演算子:代入演算子、比較演算子、論理演算子を詳しく解説 【ゼロ
から学ぶPython】 06. Pythonで算術演算子を使って計算や文字列の連結をする 【ゼロから学ぶPython
】スクラッチ] Python ] 05. Python の出力と入力
【ゼロから学ぶ Python】 04. Python プログラミングの基礎: 変数、データ型、識別子
【ゼロから学ぶ Python】 03. Python 対話型プログラミングとコメントの詳細説明
【Pythonをゼロから学ぶ】 02. 開発ツールの紹介
【Pythonをゼロから学ぶ】 01. Pythonのインストールと設定

おすすめ

転載: blog.csdn.net/qq_33681891/article/details/133125935