GNU/Linux >> Linux の 問題 >  >> Linux

ipcsコマンドを使用してLinux共有メモリを確認する方法

共有メモリは、複数のプロセスがアクセスできるメモリです。つまり、異なるプロセス間で共有できるメモリ領域と、2つのプロセス間でデータを渡すためのより良い方法です。共有メモリは、現在利用可能なプロセス間通信の最速の形式です。

プログラムがメモリ部分を作成し、別のプロセスがアクセスできると仮定します(許可されている場合)。共有セグメントは、同じプロセスで複数回接続できます。メモリがプロセスのアドレス空間にマップされるとき、つまり共通のメモリ領域を共有するときはいつでも、カーネルはプロセス間でデータを渡すときに関与しません。 Oracle SGAなどの多くのアプリケーションでは、共有メモリ設定が必要です。

いくつかの例を通して、いくつかのIPCSコマンドを確認してみましょう。

-mを使用してアクティブな共有メモリセグメントを印刷します オプション。

ここで、

「宛先」ステータスは、メモリセグメントが破棄済みとしてマークされていることを意味します
「nattach」フィールドには、共有メモリにまだ接続されているアプリケーションPIDの数が表示されます

# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 65536 root 600 393216 2 dest
0x00000000 98305 root 600 393216 2 dest

次のコマンドは、アクティブな共有メモリセグメントに関する情報を出力します。

# ipcs -q
------ Message Queues --------
key msqid owner perms used-bytes messages

アクティブな共有メモリキューに関する情報を出力します:

# ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems

アクセス可能なセマフォであるセマフォに関する情報を印刷します。 ipcs -lは、共有メモリ、セマフォ、およびメッセージの制限を示します。

# ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 1073741824
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767

------ Messages: Limits --------
max queues system wide = 16
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536

次のコマンドは、Linuxプロセスが仮想アドレス空間に割り当てることができる単一のメモリセグメントの最大サイズを示しています。次のコマンドを実行して、単一のメモリセグメントの最大サイズを制限できます。

# cat /proc/sys/kernel/shmmax
4294967295

以下のように関連する/procファイルにエコーすることでshmmax値を設定できます。次のコマンドは、最大サイズ(バイト単位)を設定します。単一のメモリセグメントは8388698に設定されます。

# echo 8388608 > /proc/sys/kernel/shmmax

同様の方法で、SystemVIPCメッセージキュー内の任意の単一メッセージの最大許容サイズをバイト単位で設定できます。

# echo 8192 > /proc/sys/kernel/msgmax

次のコマンドを使用して、セマフォの現在のカーネルパラメータを確認できます。

# cat /proc/sys/kernel/sem
250 32000 32 128
where
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767

結論

このチュートリアルでは、共有メモリ情報を確認するためのLinuxipcsコマンドについて学習しました。読んで楽しんでいただければ幸いです。以下のコメントセクションに提案を残してください。


Linux
  1. Linuxpmapコマンドでプロセスのメモリ使用量を確認する方法

  2. コマンドラインを使用してLinuxを再起動する方法

  3. Linux ベースのサーバーでメモリ使用量を確認する方法

  1. LinuxコマンドラインでRAMサイズをGbで確認する方法

  2. Linux での ipcs コマンドの例

  3. Linux コマンドを使用して OS とバージョンを確認する方法

  1. Linuxでメモリ使用量を確認する方法、5つの簡単なコマンド

  2. Linuxシステムが32ビットか64ビットかを確認する方法

  3. コマンドを使用してLinuxでプロセスを強制終了する方法は?