素人の言葉でshmagesは何ですか?

素人の言葉でshmagesは何ですか?

shmpagesカーネルとメモリの用語の全体的なスキームは正確に何ですか?shmpages制限に達するとどういう意味ですか?

これがLinux以外の場所でも動作するかどうか疑問に思います。

答え1

ユーザーモードプロセスは、プロセス間通信(IPC)を使用して互いに通信できます。これを行う最速の方法は、共有メモリページ(shmpages)を使用することです。たとえば、音楽を再生してビデオを再生する
場合は、両方のプロセスにいくつかのサウンドを出力する権限が必要です。 bansheevlcpulseaudio

共有メモリの構成と使用について詳しくは、次のコマンドのいくつかを試してください。

共有メモリ構成の表示:

sysctl kernel.shm{max,all,mni}

デフォルトでは(Linux 2.6)、次のように出力する必要があります。

kernel.shmmax = 33554432
kernel.shmall = 2097152
kernel.shmmni = 4096

shmmni許可される共有メモリーセグメントの最大数、共有メモリーshmmaxセグメントに許容されるサイズ(32 MB)、shmallすべてのセグメントの最大合計サイズ(ページで表示、8 GB に変換)

現在使用中の共有メモリ:

grep Shmem /proc/meminfo

ディストリビューションで有効になっている場合:

ls -l /dev/shm

ipcsIPCの使い方を学ぶための素晴らしいツール:

ipcs -m 

共有メモリの使用量が出力され、そのサイズに割り当てられているセグメントを確認できます。

ipcs -m -i <shmid>

セグメントを生成したプロセスのPID(cpid)と、セグメントを使用した最後のプロセス(lpid)を含む、指定されたセグメントに関する追加情報を表示します。

ipcrm共有メモリセグメントは削除できます(ただし、これらのセグメントは他のプロセスが接続されていない場合にのみ削除されます。nattach列を参照ipcs -m)。

ipcrm -m <shmid>

共有メモリを使い果たすことは、大量の共有メモリを過度に使用するプログラム、割り当てられたセグメントを正しく分離しないプログラム、sysctl値の変更などです。

これはLinuxに限定されず、ほとんどの場合、UNIXシステムにも適用されます(共有メモリはシブニックス)。

関連情報