【定義】
AAA:NISサーバー、CentOS
BBB:NFSサーバー、CentOS
CCC:NISクライアント、NFSクライアント、RHEL

【概要】
CCCマシンにてautofsで自動マウントしたいと思っていますが、autofsコマンドが
効かず、「マウントポイントの定義がありません」と表示されます。

【詳細】
BBBマシンの/export/homeをCCCマシンの/userにマウントすることを狙っています。
BBBマシンにて、nfsサービスを起動後、/etc/exportsファイルを
/export/home 192.168.1.0/26(rw,sync)
と記述し、[root@BBB]# exportfs -av コマンドを実行しました。さらに、
[root@BBB]# showmount -e でエクスポート
されていることを確認しました。

AAAマシンにて、/var/yp/etc/auto.directを
/user  -rw,hard  BBB:/export/home
と編集しました。[root@AAA]# /var/yp/makeを実行しました。

CCCマシンにて、
[root@CCC]# mkdir /user とマウントポイントを作成し、
/etc/nsswitchを
automount  nis files
と編集しました。そして、
[root@CCC]# service ypbind start
[root@CCC]# /etc/init.d/autofs start と実行すると、
「マウントポイントの定義がありません」と表示されてしまいます。

当然、CCCにて、/userは見えません。
[root@CCC]# ls /user :何も無し。

もちろん、BBB上の/export/home以下にはディレクトリ、ファイルは入っています。

なぜ、CCC上で自動マウントがうまくいかないのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

RHEL Desktopで試してみましたが、「マウントポイントの定義がありません」とは表示されませんでした。



ただ、nssswitch.confを
> automount  nis files
としたことろ、下記のメッセージが出力されます。
syntax error in nsswitch config near [ syntax error ]

だとしたら、:(コロン)が抜けてるタイポですが..
情報が少なすぎてこれ以上は検証できません。
    • good
    • 0

投稿時のミスかもしれませんが..



> /- auto.direct
/- yp:auto.direct では?

この回答への補足

試してみましたが、症状は同じです。

補足日時:2009/05/15 20:33
    • good
    • 0

> AAAマシンにて、/var/yp/etc/auto.directを


autofsの設定ファイルは、auto.masterですよね。
auto.masterで/userの定義がどこにあるか(auto.direct)
設定しないとだめです。

> 当然、CCCにて、/userは見えません。
autofsは、/userを参照してもマウントされません。
/user/xxxxを参照してはじめてマウントされます。

参考URL:http://kayanomori.net/memo/index.php?NIS%A5%B5%A …

この回答への補足

ご回答ありがとうございます。
NISサーバーAAAの/var/yp/etc/auto.masterには、
/- auto.direct
と記述しています。これでは足りないのでしょうか?

なお、CCCで
[root@CCC]# ypcat auto.direct
と実行すると、AAAの/var/yp/etc/auto.directの内容
-rw,hard BBB:/export/home
と表示してくれます。

補足日時:2009/05/15 13:26
    • good
    • 0

> なぜ、CCC上で自動マウントがうまくいかないのでしょうか?



それは、CCC上で自動マウントを行うために必要な設定を行っていないからで
す。

mkdir /user とマウントポイントを作成したまでは CCC 上での作業は正しい
のですが、それ以降は誤った作業に見受けられます。

/etc/nsswitch.conf は autofs とは無関係なファイルです。また、ypbind を
autofs サービスの前に起動させていますが、これも autofs で自動マウントを
行うためには無関係な作業です。つまり、neutron さんは CCC上で自動マウン
トを行うために必要な設定を一切していないことになります。

autofs でマウントを行うためび手順は下記のとおりです。

1. /etc/auto.master を設定
2. オートマウントシステムマップ を設定
3. autofs サービスの起動

詳細は下記の URL などを参考にして設定を行って下さい。

http://www.redhat.com/docs/manuals/enterprise/RH …

この回答への補足

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

autofs でマウントを行うためび手順は下記のとおりです。

1. /etc/auto.master を設定
2. オートマウントシステムマップ を設定
3. autofs サービスの起動

ということですが、これではCCC上の/etc/auto.masterを参照することに
なってしまうのでしょうか?
私はNISサーバーAAAの/var/yp/etc/auto.directを参照したいと思っています。
そのためにはCCCの/etc/nsswitchで
automount nis files
とnisを先に書けばAAAの/var/yp/etc/auto.directを参照するのではないかと
思っていました。

NISサーバーAAAの/var/yp/etc/auto.directを参照する方法を探しています。

補足日時:2009/05/15 10:19
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qマウントしたディスクにcpで、所有者などがコピーできない。

マウントしたディスクにcpで、所有者などがコピーできない。

Linuxサーバー上で、NFSマウントした外部ディスクに、cpコマンドでバックアップを取っています。(cronで夜間に実行)

コピーは正しくおこなわれているのですが、
 ・パーミッション
 ・所有者
 ・グループ
が正しくコピーされておらず、ログには
cp: failed to preserve ownership for `(ファイル名)': Operation not permitted
と出ています。※権限がないと言ってることくらいは理解できます。
また、コピーされたファイルのユーザーと所有者は「nfsnobody」になっています。

パーミッションや所有者、グループも含めてコピーしたいと思っているのですが、どのようにすればよいのでしょうか?

<補足>
・コピーは「cp -fpR」でやっています。
・cronでシェルを起動してコピーを実行しています。
・cronはrootで実行しています。
・cronで実行せずに、直接シェルをたたいても同じです。
・Red Hat Enterprise Linux Server release 5.3 (Tikanga)です
・コピー先も同じRedhatです。

マウントしたディスクにcpで、所有者などがコピーできない。

Linuxサーバー上で、NFSマウントした外部ディスクに、cpコマンドでバックアップを取っています。(cronで夜間に実行)

コピーは正しくおこなわれているのですが、
 ・パーミッション
 ・所有者
 ・グループ
が正しくコピーされておらず、ログには
cp: failed to preserve ownership for `(ファイル名)': Operation not permitted
と出ています。※権限がないと言ってることくらいは理解できます。
また、コピーされたファイルのユーザーと所有者...続きを読む

Aベストアンサー

NFSのサーバー側のデフォルトでは、NFSで所有者がrootのファイルを書き込めないようになっています。
(ローカルにroot権限をもっていない人間でも、root権限を持つ別のマシンを用意してNFSでマウントすれば、rootなファイルを書き込める、というのはセキュリティ的に問題があるため)

NFSのサーバー側(コピー先)で、/etc/exports で、no_root_squash を設定すれば、
rootでも書き込めるようになります。
http://www.linux.or.jp/JM/html/nfs-server/man5/exports.5.html
http://mountainbigroad.jp/fc5/nfs.html#p02_01

QNTPで同期が始まらない

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntpq -pの結果は下記となります。

remote refid st t when poll reach delay offset jitter
==============================================================================
133.100.9.2 .INIT. 16 u - 64 0 0.000 0.000 4000.00
130.69.251.23 .GPS. 1 u 27 64 377 8.015 -99970. 17262.6

同期ができれば「remote」列に「*」が表示されると思っています。
何か設定が足りないでしょうか?。
尚、「/vat/log/message」をtailしてますが特にエラーは無さそうです。

よろしくお願いします。

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntp...続きを読む

Aベストアンサー

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハードウエアclockを合わせます。
http://www.linux.or.jp/JM/html/util-linux/man8/hwclock.8.html

○ntpdの動作
ntpによる時刻調整は、調整幅が通常128mSと小さいので、1時間は様子をましょう。
2時間程度経過しても、時刻修正の兆候が見られない場合ハードウェアの不良も考えられます。

時刻調整の兆候としては、
・logファイルに 一時間毎に調整したメッセージが書かれる。
Jan 7 21:57:40 ntpd[91145]: offset 0.000994 sec freq -190.802 ppm error 0.000076 poll 8
・ntpq -p の出力の最初の桁に"*,+"が付く。また、reach が377になる。
% ntpq -np
remote refid st t when poll reach delay offset jitter
+192.168.0.102 GPS_NMEA(0) 2 u 3 32 377 0.926 -0.330 0.023
*192.168.0.192 GPS_NMEA(1) 2 u 10 32 377 0.747 -0.336 0.023
192.168.0.9 PPS(1) 2 u 3 32 377 0.757 6.559 0.161


○その他
・PC起動時には、システムクロックを計測してその後の動作の基準にしていますが、
CMOSバッテリ不足やハードウェアに何らかの異常があるととんでもない時刻を示すことがあります。(要修理です)
・BIOSの時計も起動時の初期時刻として使われてしまうので、ある程度合わせておいた方がいいです。

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハ...続きを読む

QRed Hat 7.1 に rshできない(~/.rhostsの設定後)

Red Hat Linux release 7.1 です。
~/.rhosts を設定しても 他及び自ホストから rshできません。
ホストとユーザを記述し,モードを 600 にしました。

どうすれば,rshを許可できるでしょうか?

Aベストアンサー

myhost: Connection refused
で拒否されるのであれば、
inetd/xinetdからin.rlogindの起動が
許可されていません。
inetd(スーパーサーバ)の関連を、調べなおして
見ましょう。
TCP Wrapperで拒否されたのであれば
Connection reset by peer.
と表示されます。

プロンプトから
ps -ax|grep inetd|grep -v grep
と入力し、inetdとでたら、/etc/inetd.conf
のloginで始まる行のコメントを解除しましょう。
ファイルを、

xinetdと表示されたら/etc/xinetd.d/rlogin
を修正しましょう。
disable = yes
となっているはずです。これをnoに変えましょう。

単にリモート操作をしたいのであればrloginやtelnet
の方が適していると思います。rshは遠隔でコマンドを
実行するのが目的でリモートログインするのは
おまけ的な要素でしかありません。
なぜrshなのでしょうか?
何もrshでなくてtelnet/rloginでは何がだめなのでしょうか?


注意:
ここでは「単に動くだけ」の設定方法しか紹介して
おりません。そのためこのままではセキュリティ的に
非常に弱いので、このままインターネットに直結/常設
することは避けてください。

myhost: Connection refused
で拒否されるのであれば、
inetd/xinetdからin.rlogindの起動が
許可されていません。
inetd(スーパーサーバ)の関連を、調べなおして
見ましょう。
TCP Wrapperで拒否されたのであれば
Connection reset by peer.
と表示されます。

プロンプトから
ps -ax|grep inetd|grep -v grep
と入力し、inetdとでたら、/etc/inetd.conf
のloginで始まる行のコメントを解除しましょう。
ファイルを、

xinetdと表示されたら/etc/xinetd.d/rlogin
を修正しましょう。
...続きを読む

QLVMのメリット、デメリット

RedHat系OSで自動パーティションを選択すると、
LVMとなりますが、
LVMを使うとあとでディスク追加が可能なようで、
メリットを感じますが、ディスクアクセス速度は遅くならないのでしょうか?
特にデメリットがなければLVMとしたいのですが、
判断が付かず困っています。

Aベストアンサー

全然詳しくありませんが、LVM は基本的にはあまりパフォーマンスにはよくないようです。それで RAID を組んでストライピングしてカバーしましょう、ということになるようです。
逆にメリットとしては、ディスク追加のほかに、スナップショットが撮れる(簡単にバックアップが取れる)という点があるとのことです。(私自身は使ったことがないのですが)柔軟性という意味では、採用しない手はないようにも思います。
柔軟性を優先すべきか、あくまでパフォーマンスを重視すべきか、という点が問題になるようです(当り前かもしれませんが)。

ウェブ上のレポートでは、Bonnie++ というツールでパフォーマンスを計測している例がよく見られました。実験できる環境がおありでしたら、一度試されることをお薦めしたいと思います。

参考URL:http://www.linux.or.jp/JF/JFdocs/LVM-HOWTO.html

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Q/ が何時の間にか「Read-only file system」になってしまった

PlamoLinuxの3くらいを使っています。
18日間起動しているマシンで、
いつものように作業をしようと思ったら、
なぜか動作が変でした。
いろいろと調べてみると、どうやら
/ が何時の間にか「Read-only file system」になっていました。
そのため、/tmpに一時的に書き込んだりする
プログラムの動作がおかしくなったのではないかと思っています。
試しに「# touch /tmp/test」を実行すると
「Read-only file system」とか「読み込み専用ファイルシステムです」
と文句を言われてしまいます。
/etc/fstabと/etc/mtabを確認したところ、
「/dev/hda2 / ext3 defaults 1 1」
「/dev/hda2 / ext3 rw 0 0」
だったので、問題はないかなと思っています。
「# mount -o rw,remount /」を試してみると、
block device /dev/hda2 is write-protected, mounting read-only
と言われてしまいました。
ログを確認したところ、7/30 04:26に書き込まれたのが最後で、
それ以上書かれていないところからすると、
その直後くらいに / がRead-onlyになってしまったようです。
ちなみに、ログにはおかしな記録は見当たりませんでした。

/dev/hda1がswap
/dev/hda2が/
/dev/hda3が/boot
/dev/hda4が/home
で、/だけがRead-onlyになってしまったようで、
/home, /bootは書き込めました。
再起動はできるだけしたくないのですが、
元にもどす方法はないでしょうか?
宜しくお願いします。

PlamoLinuxの3くらいを使っています。
18日間起動しているマシンで、
いつものように作業をしようと思ったら、
なぜか動作が変でした。
いろいろと調べてみると、どうやら
/ が何時の間にか「Read-only file system」になっていました。
そのため、/tmpに一時的に書き込んだりする
プログラムの動作がおかしくなったのではないかと思っています。
試しに「# touch /tmp/test」を実行すると
「Read-only file system」とか「読み込み専用ファイルシステムです」
と文句を言われてしまいます。
/etc/fsta...続きを読む

Aベストアンサー

dmesg を実行したり /var/log/messages を調べると kernel から何かファイルシステムに関するエラーが出力されていませんでしょうか。経験上、ファイルシステムのエラー(I/O error)によって強制的に Read-Only モードに移行させられているように見えます。

もし I/O error 等のエラーが出ている場合は、/ 以下だけではなく、出来れば全パーティションのバックアップを早急に行うことをオススメします。もしディスクの破損が原因であれば、バックアップ作業中に止まってしまう事もありますので、バックアップ作業自体にもリスクを伴うことにご注意下さい(止まってしまうと二度とブートできなくなる、という現象を目の当たりにしたこともあります)。

HDD のセクタ内の情報が単に矛盾しているだけであれば、サーバの再起動後にシングル・ユーザ・モードで fsck を実行してファイルの整合性を確認することが必要です。

もしファイル情報の不整合がハードディスクの物理的な故障によるものであれば、ハードディスクの交換作業が必用になってしまいます。。

まずは、ログを確認して、どのようなメッセージが出ているか確認をなされてみては如何でしょう。上記の記述は最悪のケース、ですので。。

dmesg を実行したり /var/log/messages を調べると kernel から何かファイルシステムに関するエラーが出力されていませんでしょうか。経験上、ファイルシステムのエラー(I/O error)によって強制的に Read-Only モードに移行させられているように見えます。

もし I/O error 等のエラーが出ている場合は、/ 以下だけではなく、出来れば全パーティションのバックアップを早急に行うことをオススメします。もしディスクの破損が原因であれば、バックアップ作業中に止まってしまう事もありますので、バックアップ作...続きを読む

Q空白を含んだシェル変数の代入

こんにちは。
空白を含んだシェル変数の代入について教えてください。

set test1="ABCD EFGHIJ"
set w1=$test1
echo "w1 = $w1"

このようなシェルスクリプトを実行させた時
w1 = ABCD
と表示されてしまいます。
解決案があれば教えてください。

よろしくお願いします。

Aベストアンサー

set w1="$test1"

ダブルクォーテーションで囲ってください。
この場合シングルはダメです(変数内容が展開されません)。

QVMWare仮想ソケット数とソケットあたりのコア数

VMWareバージョン5.0から仮想OSに割り当てるCPUの設定で仮想ソケット数とソケットあたりのコア数というのがあり、それぞれを掛けた値が仮想OS毎のコア合計数となる様です。
以下の内容について教えていただけませんでしょうか。

(1)ソケット数とコア数がどのようなものなのかというのが解っていません。
どのように算出された計算値からこれを設定すればいいのか教えていただけますでしょうか。

(2)コア合計数を2としたい場合仮想ソケット数を2にし、ソケットあたりのコア数を1にする
 のでしょうか?それとも逆に仮想ソケット数を1にし、ソケットあたりのコア数を2にすれば
 良いでしょうか?

宜しくお願い致します。

Aベストアンサー

ちょっとかじった程度の技術者です。
専門家ではないので参考程度に。

(1)コアはCPUの中にあり、実際に計算をする部分になります。
複数のコアを持っているCPUは同時に複数の処理をする事ができます。

コア数はCPUによって決まっていて、1つのCPUに2つとか4つとか複数のコアが
搭載されている場合があります。(例:デュアルコア=2個、クアッドコア=4個)

ソケットとはCPUを搭載する部分の事で、1つのソケットに1つのCPUが載ります。

という事で、例えば「クアッドコアのCPUを2個搭載」した場合、
・コア数=4
・ソケット数=2
となり、仮想OSに割り当てられる仮想CPUは「4×2=8個」となります。

(2)仮想ソケット数については「どの様な挙動をさせたいか」「OSの制限」
などによって異なると思います。

デュアルコアCPUが1個搭載されているような挙動を期待しているなら
仮想ソケット数を1に、コア数を2に。
シングルコアのCPUが2個搭載されている様な挙動を期待しているなら
仮想ソケット数を2に、コア数を1に。

OSの制限についてですが、OSによってはソケット数が決まっているケースがあります。
WindowsXPの場合はCPUが2個までしか載せられなかったと思います。
その時は仮想ソケット数は「2」までしか設定できない事になり、仮想CPUを4つに
設定したい時は仮想ソケット数を2に、コア数を2に設定する事になります。

という事でこの場合は「環境と希望による」という回答になると思います。

ちょっとかじった程度の技術者です。
専門家ではないので参考程度に。

(1)コアはCPUの中にあり、実際に計算をする部分になります。
複数のコアを持っているCPUは同時に複数の処理をする事ができます。

コア数はCPUによって決まっていて、1つのCPUに2つとか4つとか複数のコアが
搭載されている場合があります。(例:デュアルコア=2個、クアッドコア=4個)

ソケットとはCPUを搭載する部分の事で、1つのソケットに1つのCPUが載ります。

という事で、例えば「クアッドコアのCPUを2個搭載」した場合、
・コア数...続きを読む

QNTP の TCPポートは?

NTPは123/UDPでようは足りると思うのですが、
WELL KNOWN PORTとかいろいろな資料に「123/TCP」ポートが割当たってます。
ntpd,ntpdate等でNTPを使う場合、実際には123/TCPは使われているのでしょうか?

Aベストアンサー

RFC1305では「ntpには123/udpを割り当てる」となっていますが、RFC1700では「123 ntp」となっており、「123/udp」と明示されているわけではありません。
よって、「123/tcp ntp」が間違っている(または使えない)という明確な根拠にはなりません。

「現状では『123/tcp ntp』を実装するための定義が存在しない」程度に考えた方が良いと思います。

ただ、将来的にRFC2030のSNTPが(IPv6対応などの点で)主流になる可能性があるので、「123/tcp ntp」は定義されない可能性もあります。

QCPU使用率とロードアベレージ

Linuxのtopコマンド等で出力されるCPU使用率とロードアベレージの違いを教えてください。
また、ロードアベレージをCPU使用率に換算することは可能でしょうか?
可能であれば方法を教えてください。

Aベストアンサー

 ロードアベレージは、最も簡単に説明すると、実行プロセス数の平均だ。説明によっては実行待ちプロセス数や実行可能プロセス数となっているが、正確には実行プロセス数(実行中プロセス数+実行可能プロセス数)だ。つまり、I/O待ちのプロセスはカウントされない。
 ここで、たとえば、1秒間に10回実行プロセス数をカウントすると、1分間では600回カウントする。カウントした時に、毎回3、4、5あたりをうろうろしていると、平均値としては4ぐらいになる。これがロードアベレージだ。正確に、Linuxが1秒に何回カウントしているかは知らんが、どちらにせよ
(カウントした時のロード数1+...カウントした時のロード数n)/カウント数
という計算式になるので、1分に何回カウントしたかはあまり重要な数字ではない(もちろん1分に1回やら数回やらというのは困るが)。ロードの平均値を取っているのでロードアベレージだ。

 ロードアベレージは、「システム負荷率」と表現される事が多い。負荷ってCPU使用率じゃないのと思うかも知れないが、例えば、CPUが1個のマシンにおいて、CPU使用率が常に100%の状態が1時間続いたと仮定して、その間ロードアベレージが常に1だったとすると、システムの負荷は0という事になる。なぜかと言うと1個のプロセスが常にCPUを占有している状態だからで、それは1個のプロセスが理想的にCPUを使いつづけた状態だからだ。
 つまり、ロードアベレージが負荷と表現されるのは、「CPUが割り当てられたらすぐ実行できるのに実行できないプロセスの割合」だからかな。

 別のモデルを考える。I/Oを行わず、常にCPUによる処理をしている3つのプロセスがあり、システムプロセスを含め、それ以外のプロセスは一切動作しないとすると、ロードアベレージは常に3になる。CPUが1個だと3、2個だと3、3個だと3、4個だと3だ。変わってCPU利用率はCPUが1個だと100%、2個だと100%、3個だと100%、4個だと75%となる。
 もちろん、ロードアベレージが3でも、CPUが1個だと常に2つのプロセスが実行可能(CPU割り当て待ち)となるが、3個だと3つのプロセスが全て実行中になる。なので、CPU利用率は1個でも3個でも同じ100%だが、3個だと十分仕事をさばけている状態だし、1個だとさばけていないよね。CPU利用率だけでは分からないって事。なのでロードアベレージが存在するわけだ。
 そういう訳で、「ロードアベレージの理想値=CPUの個数」または、「ロードアベレージがCPUの個数を超えなければシステムは良好」などと説明されている訳だな。

 これが、私が解釈しているロードアベレージだが、何か参考になれば。

 ロードアベレージは、最も簡単に説明すると、実行プロセス数の平均だ。説明によっては実行待ちプロセス数や実行可能プロセス数となっているが、正確には実行プロセス数(実行中プロセス数+実行可能プロセス数)だ。つまり、I/O待ちのプロセスはカウントされない。
 ここで、たとえば、1秒間に10回実行プロセス数をカウントすると、1分間では600回カウントする。カウントした時に、毎回3、4、5あたりをうろうろしていると、平均値としては4ぐらいになる。これがロードアベレージだ。正確に、Linuxが1秒に何回カ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報