ほぼ全ての機能を新サイトへ移行しました

問題ID:15843について

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2016-1-6 14:30
exmouth  新米   投稿数: 3
『マルチプロセッサマシンを使用しているが、マシンの再起動時に一時的にシングルプロセッサマシンとして動作させたい。以下の画面の空欄部にはどのような指定をすれば良いか。
正しいものを選びなさい。』
という問題で、ping-tの解答は、
nosmp
maxcpus=0
でしたが、同様の問題で、スピードマスター問題集の答えは
nosmp
maxcpus=1
となっていました。
なお、ping-tのほうの選択肢にも「maxcpus=1」はありますが、選択すると、間違いになります。
どちらが正解になりますでしょうか?
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2016-1-6 16:53
arashi1977  長老 居住地: 広島  投稿数: 1715
実機で見てみると
■nosmp
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-327.3.1.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet LANG=ja_JP.UTF-8 systemd.debug nosmp
$ cat /proc/cpuinfo | grep processor
processor	: 0

■maxcpus=0
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-327.3.1.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet LANG=ja_JP.UTF-8 systemd.debug maxcpus=0
$ cat /proc/cpuinfo | grep processor
processor	: 0

■maxcpus=1
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-327.3.1.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet LANG=ja_JP.UTF-8 systemd.debug maxcpus=1
$ cat /proc/cpuinfo | grep processor
processor	: 0
processor	: 1
と、maxcpus=1だとCPUを2つ認識しますね。

カーネルはCPUを0から数え始めますので、「maxcpus=1」はCPU1番まで(0番と1番の2つ)を使うことになります。これは参考URLの先でも明記されていますし、カーネルドキュメントでも以下のように0を指定することでCPUが1つしか使われないと書かれています。

https://www.kernel.org/doc/Documentation/kernel-parameters.txt
引用:
(略)
maxcpus= [SMP] Maximum number of processors that an SMP kernel
should make use of. maxcpus=n : n >= 0 limits the
kernel to using 'n' processors. n=0 is a special case,
it is equivalent to "nosmp"
, which also disables
the IO APIC.
(略)
nosmp [SMP] Tells an SMP kernel to act as a UP kernel,
and disable the IO APIC. legacy for "maxcpus=0".
※UP=Uni-Processor(単独のCPU)、Multi-Processor(複数のCPU)の反対
なので、スピードマスターが間違いなんだろうと思います

#スピードマスターの発行元って実機検証してるんだろうか…
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-1-7 13:42
exmouth  新米   投稿数: 3
ご返信有り難うございました。
教えていただきました方法で確認しましたところ、確かに、
nosmpはmaxcpus=0でした。
そう言われてみれば、1章でsar -P ALLした時もcpuの1番目は0になっていました。
ご丁寧な解答ありがとうございました。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2019-5-13 14:45
zunda  新米   投稿数: 1
大分前の記事への返信となりますが、自分もスピードマスター(4.5版)とping-t(4.5対応)の答えが異なっていたため、気になって調べてたところ、こちらの記事を拝見しました。

そのためシングルプロセッサで動作させるには、nosmpかmaxcpus=0だと思っていたのですが、昨日、202に引き続き201を受験したところ、
「シングルプロセッサマシンとして動作させるには」という問題が出題され、選択肢にはnosmpもmaxcpus=0もありませんでした。
選択肢にあったのはmaxcpus=1でした。

nosmpに似た選択肢はありましたが(smpなんとか)、他の選択肢はスピードマスターでもping-tでも見たことがない選択肢だったため、
結局自分は、maxcpus=1を選択しました。

検証上は先人の仰る通りだと思うのですが、選択肢にはmaxcpus=0がなかったので迷いました。

結果的には202に引き続き201も無事受かったのですが、回答が正しかったのかがわからず、今もモヤモヤしています。(仕事上使うことはなく、方法もないので、自分では検証していません。)

これから受験する方へご参考まで情報共有させて頂きます。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2021-5-3 4:45 | 最終変更
tnishita2  長老   投稿数: 123
私も大分前の記事への返信となりますが、問題ID 8750について調べていたところ、こちらを発見しました。(問題ID 15843にはもうアクセスできない?)

私は今手元に試す環境がなくて申し訳ないのですが、maxcpus=1 がCPU0番、CPU1番の2CPU 使うことを意味するというのは、正しくないかもしれません。

というのは、maxcpus=n としてn 個のCPU で動作したという情報が
http://yamada.daiji.ro/blog/?p=621
https://sites.google.com/site/memomuteki/dsllinux/maruchikoawoshingurukoadedongzuosaserufangfa
のようにありますし、
https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
のmaxcpus 部分を読んでもそうは解釈しづらいというのもあります。

arashi1977さんの検証でmaxcpus=1のとき2CPU で動作したのは、ひょっとするとRHEL 7の不具合:
https://zokibayashi.hatenablog.com/entry/2017/03/02/205414
https://access.redhat.com/solutions/2463161
が関係しているかもしれません。arashi1977さんの検証結果を見るとCentOS ですがel7 のカーネルをお使いのようですので。Red Hat にログインできず詳細がわからないのですが…。

どなたかRHEL 7/CentOS 7 以外のカーネルで再検証いただいたり、情報提供いただけると助かります。

※ zunda さんはもうここを見ていないと思いますが、よければどなたかmaxcpus=1 が出題されたのがLPIC かLinuC かを教えていただければと思います。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.
ログイン
ユーザ名 or E-Mailアドレス:

パスワード:







プレミアムコンテンツ

受験チケット(割引)

Contact

LPI-Japan Logo

LPI Logo