system management
1753710 メンバー
4642 オンライン
108799 解決策
新規ポスト

アプリケーションで使用できるメモリ量の取得

 
void
新しいメンバー

アプリケーションで使用できるメモリ量の取得

HP-UXでアプリケーションが使用できるシステムのメモリ量の取得方法を教えてください。

現在C言語でアプリケーションを作成していますが、このアプリケーションの中で自分自身が使うメモリの上限を設定できる実装を考えています。その実装は次の計算式を考えています。

分母:システムのすべてのアプリケーションが使うことのできるメモリ総量(物理メモリ+仮想メモリ)

分子:アプリケーションで使っているメモリの使用量

この分子と分母を使って、

メモリ使用率=分子/分母*100

でメモリ使用率を求めます。そして求めた使用率に対して、アプリケーション内部で上限を設定して上限を超えた場合は、アプリケーションの新規のメモリ取得を抑制する実装です。分子はpstat_getprocでアプリケーションの使用しているメモリの情報を取得します。

分母は当初pstat_getdynamicで値を取得していたのですが、望んだ値が取得できず答えが見つかりません。どなたか値の取得方法をご存知でしたら教えていただけませんか?
2件の返信2
cf
レギュラーアドバイザー

アプリケーションで使用できるメモリ量の取得

プログラミング関連はまったくだめなので、

関連情報の提供だけ。

pstat_getproc、getdynamicで取得できるのは、

プロセス毎の値だと思いますので、システム全体の

メモリ容量ではないと思います。

プロセス毎のユーザ領域とシステム領域、それから

複数プロセスで共有している領域を引き算すると

使用しているメモリ量が出ると思いますが、

その値はどこから引っ張れるのかは、

私はお教えできません。すみません。

http://h50146.www5.hp.com/products/software/oe/hpux/developer/document/memmanage/mem6.html

swapinfoであれば、物理メモリとスワップ領域を

表示させることができます。

単純に、swapinfo(1M)コマンドをsystem(3S)で

呼び出すというのはだめでしょうか。

void
新しいメンバー

アプリケーションで使用できるメモリ量の取得

ご回答ありがとうございます。

なかなか解決方法が見つからず、困っていたところでした。いただいた情報を元に調べてみます。

ご回答ありがとうございました。