2022/10/31

[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】読了

久々にLinuxの勉強を再開したので『[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】』を読んでみました。タイミングよく最近出版されたのと、Linuxの解説記事の多い技術評論社が出版しているので選択してます。


内容はLinuxカーネルのうち低レイヤーな部分の仕組みをテストコード(ほとんどPython)を交えながら解説していくものです。技術のコアな部分ですが固くない文体で説明しているので、技術書としてはかなり読みやすかったです。特にトピックとしてはプロセスへのメモリの割り当てやMMUの辺りは勉強になりました。

初版(上記の緑色じゃない表紙のほう)のAmazonレビューでは誤植が酷いことが指摘されていましたが、この増補改訂版では特におかしい記載は見当たりませんでした。難点としては網羅的に広く浅く解説されているものの、ネットワークの部分に関しては省かれています(書籍内でもこの点は言及あり)。私はネットワークについてはAmazon Unlimitedで無料で読める『 Linuxで動かしながら学ぶTCP/IPネットワーク入門』を読んで補完しました。こちらも似たようなスタイルで実験用のコード(シェルスクリプト)と共に、TCP/IPやルーティングなどのネットワークの仕組みを基礎から解説する内容になっています。


二冊ともKindle版があるので紙の本を持ち歩かなくてよく、単に紙の書籍を電子化した固定レイアウトではないのでスマホの画面でも読みやすかったです。(『 Linuxで動かしながら学ぶTCP/IPネットワーク入門』のほうは図中の文字が小さいので適宜拡大する必要がありましたが)

2022/10/26

勝手に常駐しているソースネクストアップデートを止める

ソースネクスト製のアプリをインストールすると勝手にタスクトレイに常駐するので無効化しました。サービスやタスクスケジューラーを探しても見つからないと思ったら、タスクマネージャーから設定できました。


 タスクマネージャーのスタートアップタブの「ソースネクスト アップデート ランチャーツール」を右クリックして「無効化」で起動を停止できます。


ついでに止めても大丈夫そうな以下アプリも停止しました。

iTunesHelper
Imaging Edge Desktop (Sony製のRAW現像アプリ)

2022/10/22

ソースネクストの超割・SGM(ゴールドメンバーシップ)の自動継続を解約したので解約方法メモ

ソースネクストの超割・SGM(ゴールドメンバーシップ)はデフォルトで自動継続なうえに、FAQ記載の解約方法だと解約できなかったので解約方法をメモしておきます。


FAQ記載の解約方法では解約できない

以下のFAQから飛べる解約用のフォームだと直接解約できませんでした。

Q.超割サービスを解約したい


ソースネクストの超割・SGM(ゴールドメンバーシップ)の解約方法

ログイン後、マイページ(以下リンク)を開く

https://www.sourcenext.com/users/action/utop?i=direct

「お客様情報の確認・変更」を開く

「SGM、超割の自動継続変更」を開く

自動継続のチェックを外し、「確認」ボタンを押して解約を進める

2022/10/14

Ryzen Threadripper 3970XとRTX 3090の消費電力を制限してワットパフォーマンスを上げる

 TR 3970X (TDP=280W)の性能には満足していましたがRTX 3090(TGP=350W)を買ってからシステムの最大電力が630W越えになってしまい、フルパワーで回すと流石に夏場は暑いし電気代も高いので消費電力を制限してワットパフォーマンスを改善してみました。


環境


CPU:Ryzen Threadripper 3970X

GPU:RTX 3090(ASUS TUF-RTX3090-24G-GAMING)

使用マザー:MSI TRX40 PRO WIFI

BIOSバージョン:2022-05-24 7C60v28 (E7C60AMS.280、Build 05/17/2022)


Ryzen Threadripper 3970XのPPT設定(BIOS)


AMD Ryzen Masterでも電力制限は出来ますが、Windowsが起動した後じゃないと効かないのと自動設定もできないのでBIOSで絞りました。

Precision Boost Overdriveを[Advanced]に設定してPBO Limitsを[Manual]にすると、PPT Limit / TDC Limit / EDC Limit の3つがマニュアル設定できるようになります。

3970Xの定格値は280W/215A/300Aなので、140W/215A/300Aに設定しました。5700Gとか5950XはTDPよりもPPTが高めの定格設定ですが、ThreadripperはTDP=PPTの設定なので分かりやすいですね。3970Xは電力を半分の140Wまで絞ってもシングルスレッドの性能はほぼ変わらず、マルチスレッド性能が20%減程度のようです。(180Wだと10%減で済みます。140-180Wぐらいが3970Xのスイートスポットなのでしょうか)

参考:Threadripper 3970X mit 180W im Test: Auch mit 100 Watt weniger TDP weit vor der Konkurrenz


RTX 3090 のTGP設定(MSI Afterburner)


VBIOSの設定は簡単には変更できないので、Windows上で動作するツール(MSI Afterburner)から設定します。

消費電力ではなく割合の設定で分かりづらいですが、POWER LIMITを%で指定後に適用して保存し、Windows起動時に自動反映するように設定します。

GPUのピーク電力の測定が難しくて正確なベンチ取れていませんが、100%設定だとピーク電力が大きくTGP350Wよりもサバ読んでる感じなのが、少し絞るだけで電力枠の設定を守ろうとするのかピークの上がり方が大人しくなります。


ワットパフォーマンスが改善


CPUとGPU合計で630W超の状態から200W以上削減して、ワットパフォーマンスが大幅に改善できました。最近のCPU/GPUはピーク性能で勝つために電力を盛り気味な設定なので、少し性能を抑えるだけでも消費電力を大幅に減らすことができます。

定格範囲内の消費電力の調整は電圧やクロックの追い込み不要で簡単に設定できるので、冬場で暖房が必要なレベルまで寒くなったら100%に戻してみます。



B350マザーでPPT 35Wを設定する(Ryzen 7 5700G編)

4年半も前に購入したB350 マザー+Ryzen 5 2400Gですが、最近のBIOSアップデートで(Ryzen 7000シリーズの登場で型落ちになって安くなった)Ryzen 7 5700Gに対応したのでCPUだけ換装しました。Zen+世代のcTDPによる数段階の調整ではなく、Zen3世代ではPPTでパッケージ電力の最大値をワット数で指定できるので、簡単に消費電力を抑えて電力効率向上できます。


使用マザー

ASUS ROG STRIX B350-F GAMING


BIOSバージョン

2022/05/12 ROG STRIX B350-F GAMING BIOS 6042(AMD AM4 AGESA V2 PI 1.2.0.7.)


消費電力を任意に設定するPPTの機能はPrecision Boost Overdriveの関連設定になってます。(300番台マザーはPBO使えなかったはずですが、最新版のAGESAにアップデートされて解禁されたのでしょうか?とにかく設定できるようになっていました。)

Ai Tweaker > Precision Boost Overdrive > Precision Boost Overdriveを[Auto]から[Manual]に設定すると、PPT Limit / TDC Limit / EDC Limit の3つがマニュアル設定できるようになります。5700Gの定格値は88W/65A/95Aなので、TDPは65Wですが給電能力と温度に余裕があるうちは勝手に88Wまでシバく設定になっています。なので5700G定格(PPT=88W)だと2400G定格(TDP=65W)よりも消費電力の実測値が高いです。

PPT Limit / TDC Limit / EDC Limit の調整方法は、定格から消費電力を引き下げるだけならPPTを下げるだけで大丈夫です。今回はcTDP=35W相当のPPT=35Wまで下げたいのでPPT Limit / TDC Limit / EDC Limit を 35W/65A/95A に設定しました。(各値の定格値はCPUの型番によって異なるので調べてください)

設定の結果、ちゃんとワットチェッカーでも消費電力が下がって効いてます。消費電力を制限するとマルチスレッドの性能は若干下がりますが、シングルスレッドはほとんど影響しません。今回3万円ちょいで2400G(cTDP=35W Voffset -0.05V)から5700G(PPT=35W 定格電圧)に換装して、消費電力据え置きで性能がタスクによりますが2~3倍程度まで高速化しました。単純に4コアから8コアになったのに加え、Zen+からZen3でIPCも上がったのが効いているみたいです。AMDのソケットは世代間の互換性があるので長く使うなら安く済みますね。



B350マザーでcTDP 35W/45W/65Wを設定する(Ryzen 5 2400G編)

もう5700Gに交換してしまいましたが、Ryzen 5 2400GのcTDPをB350マザーで設定する方法をメモしておきます。


使用マザー

ASUS ROG STRIX B350-F GAMING


BIOSバージョン

2022/05/12 ROG STRIX B350-F GAMING BIOS 6042(AMD AM4 AGESA V2 PI 1.2.0.7.)


BIOSメニューの深いところにcTDPの設定があります。

Advanced > AMD CBS > NBIO Common Options > System Configuration


35W POR Configuration - 1 Commercial

45W POR Configuration - 2 Commercial

65W POR Configuration - 3 Commercial

35W POR Configuration - 4 Consumer

45W POR Configuration - 5 Consumer

65W POR Configuration - 6 Consumer


6つあるのでConsumer 3種のどれかを選択します。

この中の「35W POR Configuration - 4 Consumer」を選択しました。ちゃんとワットチェッカーでも消費電力が下がってたので成功です。