Redhatカーネルチューニングでshmmaxおよびshmmniパラメータ値を計算する

Redhatカーネルチューニングでshmmaxおよびshmmniパラメータ値を計算する

shmmaxとshmmniの値を計算し、Redhatで最初に定義する方法。私はその後に隠された数学を理解したいと思います。カーネルパラメータに大きな数字が表示されますが、この大きな数字は何ですか?物理メモリとはどのような関係がありますか? 128GB RAMとSHMMAX="123695063040"があります。

ベストアンサー1

Red Hatのドキュメントによるとhttps://access.redhat.com/solutions/1437883(アクセスはRed Hat認証のお客様に制限される場合があります):

  • Red Hat Enterprise Linux 7.1 では、kernel.shmmax と kernel.shmall のデフォルト値が変更されました。

  • Red Hat Enterprise Linux 7.1 では、kernel.shmmax および kernel.shmall のデフォルト値がアップストリームカーネルに設定された値と一致するように変更されました。 kernel.shmmax および kernel.shmall の新しいデフォルト値は 18446744073692774399 に設定されます。

  • カーネルコードでは、次の式を使用して新しいデフォルト値を計算します。

include/uapi/linux/shm.h
[...]
#define SHMMAX (ULONG_MAX - (1L<<24))    /* max shared seg size (bytes) */
#define SHMALL (ULONG_MAX - (1L<<24))    /* max shm system wide (pages) */

おすすめ記事