システムトレイの時計に秒を表示する

Windows 11 22H2 オプションパッチ「KB5027303」がリリースされたので早速Windows Updateから適用してみました。

私が待ちに待っていた?機能が追加されています。そうそう、これこれ。

https://support.microsoft.com/en-us/topic/june-27-2023-kb5027303-os-build-22621-1928-preview-1ada2c0a-fa85-43f8-91c4-6ee13fdf278b

  • 新機能! これで、システム トレイのクロックに秒を表示するように選択できるようになりました。 これを有効にするには、[ 設定] >[ 個人用設定 ]> [タスク バー] の [タスク バーの動作] セクションに移動します。 タスク バーを右クリックして、タスク バーの設定にすばやくアクセスすることもできます。

デスクトップで今何時というか今何秒を見たいのです。

ありそうでなかった機能がついに実装されました。

表示させるには以下の設定が必要なのですが、場所が深いので、タスクバーを右クリックして「タスクバーの設定」からアクセスした方が早いです。

[設定] -> [個人用設定] -> [タスクバー] -> [タスクバーの動作]の「システムトレイの時計に秒を表示する(電力消費が増加します)」にチェックを付けると即時表示が変わります。

電力消費が増加します」という恐ろしい文言があるのですが、HWMonitorで秒の表示・あり・なしで消費電力しばらく見てましたが、デスクトップPCでは変化がわかりませんでした。人間には感知できないレベルなのでしょうか???

1日ログ収集してどのくらい消費電力違うか検証・・・しません。

NextcloudでiOSだけファイルアップロードのエラー 413 ファイルが大きすぎます

プライベートのストレージとして便利すぎるNextcloud(Dropbox, Onedriveのようなことができます)ですが、iOSアプリ特有?の問題に直面しました。

PCブラウザでは問題ない構成でも、iOSのNextcloudアプリではファイルサイズの大きい動画ファイルがアップロードできないエラーが発生しました。

公式ドキュメントを参考に対応できたのでメモを残します。ただし、根本原因までは特定できていません。

1. Nextcloudの構成

  • サーバー1 フロント
    • NGINXのロードバランサ―(プロキシー)
    • Let’s EncryptのTLS証明書
  • サーバー2 バックエンド
    • docker composeでNextcloudとMySQLを起動しています
      • nextcloud:26.0.1 (apache, php-fpmを含むイメージ)
      • mysql:8.0.32

2. エラーの切り分け

リクエストはフロントのNGINX経由なので、直接Apacheがリクエストを処理しているわけではありません。そのため、まずNGINXとApacheのどちらがエラーを返しているか調べる必要があります。これは簡単でNextcloudにリクエストが届いていなければNGINX側の問題ということになります。

Nextcloudの管理画面では、次のようなログが出ているのでNextcloudまでは到達しているようです。これはiPhone上でリトライされる度に「413: ファイルサイズがおおきすぎます」が表示され、ログも記録されるので、まずはNextcloud側の問題として切り分けてもよさそうです。

# iPhone8 2GBを超える動画ファイル
Expected filesize of 2043863883 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 0 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side.

# iPhone12 9GBを超える動作ファイル
Expected filesize of 9216860555 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 2091417600 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side.

3. 公式ドキュメントの対策を確認

こちらのドキュメントを見るとデフォルトの最大サイズは512MBで、設定変更で制限解除できることが記載されています。PCで動作していることから、基本的には対策できているはずなのですが見直してみました。

No種類設定コメント
1PHPupload_max_filesizePHP_UPLOAD_LIMITで対応済み。phpinfo()でも確認済み。
2PHPpost_max_sizePHP_UPLOAD_LIMITで対応済み。phpinfo()でも確認済み。
3PHPmax_input_timeアップロード開始直後にエラーなので関係なさそう
4PHPmax_execution_timeアップロード開始直後にエラーなので関係なさそう
5ApacheLimitRequestBody公式ドキュメントによるデフォルトでは無制限のはず
https://httpd.apache.org/docs/2.4/ja/mod/core.html#limitrequestbody

Nextcloudイメージの設定はApacheのserver-infoで確認したところ設定値は無し。つまりデフォルト値ではないのかな?
6ApacheSSLRenegBufferSizeバックエンドはhttpなので関係なさそう
7ApacheTimeoutタイムアウトする前に413レスポンスがあるので関係なさそう。Apacheのserver-infoの値は300でした。
ファイルサイズが大きいファイルをアップロードするためのNextcloudの設定値見直し

4. 念のためフロントのNGINXも対策を確認

No種類設定コメント
1NGINXclient_max_body_size設定済み
2NGINXfastcgi_read_timeout[未設定] proxyなので関係なさそう
3NGINXclient_body_temp_path[未設定] PCアップロードで問題ないので関係なさそう
4NGINXproxy_bufferingoffに設定しても効果無し
5NGINXproxy_max_temp_file_size64000Mに設定しても効果無し
6NGINXX-Accel-Buffering[未設定] フロント側で対策可能なのでスルー
ファイルサイズが大きいファイルをアップロードするためのNGINXの設定値見直し

5. 結果

まずはフロントのNGINXで対策してみましが効果ありませんでした。次にApacheのLimitRequestBodyの設定を追加して対策をしてみたのですが、設定反映直後のiPhoneアプリのリトライからアップロードが成功しました。次の設定値を追加してDocker再起動でOKです。

# nextcloud.confを作成
LimitRequestBody 0

# docker-compose.ymlで設定ファイルをバインド
app:
  volumes:
    - type: bind
      source: ./services/app/etc/apache2/conf-enabled/nextcloud.conf
      target: /etc/apache2/conf-enabled/nextcloud.conf

公式イメージにはLimitRequestBodyの設定値はなかったのですが、デフォルト値0ではないのでしょうか?しかし、設定してすぐにエラーが解消したので挙動から見ると何かが違うようです。

その他、Nextcloudでチャンクサイズの調整などもあるようですが、LimitRequestBodyで問題解消したので試していません。

参考

githubのIssueなど見ると同様のエラーが発生して同じような対策をしているようですが、コメントにもあるように、サーバーサイドの問題として切り分けられているのでNextcloudの問題ではないということでクローズになっています。Dockerfile自前で作るほどでもなく、設定ファイル1つで対策できるので公式イメージに設定追加はなさそうです。

DKIM FAIL !? Gmailで迷惑メールに振り分けられる原因

DKIMのTXTレコードを登録しても、なぜかGmailで迷惑メールに振り分けられ、ヘッダーを確認したところ「DKIM:   ‘FAIL’(ドメイン: example.com)」でした。

# ヘッダーがおかしい?
dkim=neutral (bad format) header

# 何かがおかしい??
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=example.com 以下省略

原因は長すぎるTXTレコード

AWSのRoute 53 ではDKIMのTXTレコードが長いのでそのままではエラーで登録できません。

InvalidChangeBatch 400: CharacterStringTooLong (Value is too long) encountered withのエラーが・・・

そのため、入力画面のコメントを見て末尾にスペースを入れたり、改行したりしていたのですが、それがよくなかったようです。

複数の値を個別の行に入力します。 次の行に文字列を続ける前に、末尾にスペースを追加することで、長い文字列を別々の行に区切ることができます。

https://aws.amazon.com/jp/

この方法では、別々の行に区切られてしまいますので、DKIMのTXTレコードとしては間違った状態で保存されてしまいます。具体的には3ピースに分割されてしまっていたので、DNSの問い合わせの際に順番がバラバラにレコードを参照できてしまう状態になっていたと思います。

正しい入力方法

長い文字列をダブルクォーテーションで囲み、改行せず連結してテキストボックスにコピーする

"v=DKIM1; h=sha256; k=rsa; ""p=MIIBIj~省略""LTU+iq4xk省略"

実際やってみると、あ、それだけでいいのかと・・・

という情報が、コミュニティーにありました。

https://repost.aws/ja/knowledge-center/route53-resolve-dkim-text-record-error

結果

無事、GmailでDKIMの確認をPASSすることができたので、迷惑メールに振り分けを回避することができました。

Windowsのクラッシュの原因 (nvlddmlm ID 14)

最近頻繁にWindowsがクラッシュ(画面がブラックアウト)するようになりました。イベントビューアーのWindowsログ -> システムを確認するとnvlddmlm関連のログが3つ残っています。ログは記事の最後に記載するので気になる方はご確認ださい。

2023-07-02 結論はドライバーの問題でした。安定しているバージョン(531.29)に戻して解決しています。

2023-11-10 バージョン(537.13)でもブラックアウトは回避できるが、「HDRを使用する」と再発するので無効化した。

2023-12-08 バージョン(546.26)でもブラックアウト発生。「HDRを使用する」と再発するので無効化した。

クラッシュの原因は?

nvlddmlmで調べると次のことがわかりました。

  • NVIDIAのグラフィックボードを使用していると発生する
  • Windowsのドライバーと競合している
  • 電源管理の問題の可能性
  • HDR関連のドライバーの不具合の可能性(2023-11-10追加)

急に頻繁に発生するようになったことから、最近導入したRTX4090の影響かと思いましたが、導入してからしばらくは問題なく動作していたので、頻繁に更新しているNVIDIAのドライバーの影響ではないかと思われます。

あと、もう1つ疑うのは、省電力の設定をしていることです。これはCPU、GPU、Windowsの設定を変更しています。

  • CPUは、UEFIによるV/Fカーブの設定変更
  • GPUは、GPU TWEAK 3によるPower Limit制限
  • Windowsは、システム -> 電源 -> 電源モード を 「トップクラスの電源効率」に設定

使用感としてはGPUのPower Limit以外は省電力になっている実感がないのであまり意味ないかもしれません。というわけで、まずはあまり効果を感じられないWindowsから順に設定を戻そうと思います。

グラフィックボード NVIDIA Geforce RTX 4090
ドライバーのバージョン 531.68

復旧方法

クラッシュすると画面が映らないので何も確認できず、しかたなく電源OFF,ONで復旧させます。

電源モードの変更

  1. Windowsボタンから[設定] -> [システム] -> [電源]を開く
  2. 電源モードをバランスに変更する

結論

症状が治まるまで、いろいろ試してみます。状況に変化があればこの記事を更新するようにします。

追記 2023-04-26

前回のクラッシュが2023-04-21から5日ぶりにイベントID 14のnvlddmkmのエラーが発生した。設定変更してしばらくは落ち着いていたが再発してしまった。今回はCheomeでGoogle MEETでビデオ会議中に発生してしまった。1、2分くらいで画面が表示されたのでそのままOSが落ちるほどではなかった。

しばらく落ち着いていたので`可能性としてはありそうなので、次は電源モード「最適なパフォーマンス」を試してみようと思う。

追記 2023-04-28

2日で再発。Youtube見てると落ちる気がする???次は、GPUのPowerLimit制限をやめてデフォルト設定に戻した。GPU Tweekも起動しないように設定してみた。

追記 2023-05-09

再発していないので、原因はGPU TweekのPowerLimitなのかもしれない。GPU Tweekをデフォルトで起動するようにして再発するか様子を見る。

追記 2023-05-11

再発しました。直接か間接かわかりませんがGPU Tweekが原因の可能性がある。GPU TweekをアンインストールしてAfterburnerを導入してみた。

追記 2023-05-22

あれから10日経過しても再現していないので、ASUSのGPU Tweekが原因であった可能性が高いです。(後日再発したので、ASUS GPU Tweekが原因ではありませんでした。)MSIのAfterburnerではエラーが発生していないので、機能というよりはソフトウェアの問題であったと思われます。ASUSさんにはArmory Crateを筆頭にアプリケーションの安定性をもっと向上してほしいです

追記 2023-06-04

BIOSからMemTest86を実行したところエラーが2件発生していた。このPCを組んだ当時はテストが通っていたのでBIOS更新などの影響があったかもしれない。
XMPを解除して再テストしたところMemTest86のエラーが解消されたため、XMPの設定を元に調整してみた。DRAM frequencyを3600Mhzから3200Mhzにダウンクロックしてエラーが発生しないので、しばらくこれで様子を見る。
NVIDIAのドライバーもすべてアンインストールしてから再インストールしてみた。

追記 2023-06-08

メモリーを定格動作にしてもエラーが発生したため、メモリーが原因の可能性が低くなった。イベントビューアーでこれまでのエラーを確認すると、2023-04-18以降からID 14 nvlddmkmのエラーが発生していた。それまでは問題ないとすると、それ以前動作しているドライバー(531.29)をインストールしてみた。今のところ再現せずエラーが発生していないため、しばらく様子を見る。これで直ったら単純にドライバーの問題であった可能性が高い。

2023-07-02

NVIDIAのドライバーのバージョン531.29に戻して以来、安定動作している。後で調べてわかったことですが、このバージョンは、ASUSのサポートで公開していたバージョンと一致していました。ASUS公開のドライバーは動作検証されているはずなので、最初からこれを使った方がよかったかもしれない。

https://rog.asus.com/jp/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4090-o24g-gaming-model/helpdesk_download/

2023-11-10

久しぶりにTails of ARISE の追加DLC Beyond the Dawn をプレーするためにディスプレイ設定の「HDRを使用する」を有効にしてから、Windowsのクラッシュ(ブラックアウト)が再発した。バージョン 537.13に変更した後も安定動作していたことからHDR関連のドライバーの不具合の可能性が高い。残念ですが、HDRを無効にして様子を見ています。

エラー発生日対応
2023-04-07
2023-04-14
2023-04-17
2023-04-18NVIDIAドライバー更新 531.68
2023-04-19
2023-04-21電源モードを「バランス」に変更
2023-04-26電源モードを「最適なパフォーマンス」に変更
2023-04-28GPU Tweek 3のPowerLimitをデフォルトに変更
起動時にGPU Tweek 3を起動しないように設定
2023-05-02NVIDIAドライバー更新 531.79
2023-05-11GPU Tweekデフォルト起動に変更してから2日で再発
GPU Tweekをアンインストール
MSI Afterburnerをインストール
2023-05-23再発 MSI Afterburnerを停止
2023-05-27エラー発生
2023-05-29エラー発生
2023-06-02エラー発生
2023-06-04MemTest86でエラー発生を確認
XMP解除とDRAM frequencyを3600Mhzから3200Mhzにダウンクロック
ドライバーもすべてアンインストールしてから再インストール
2023-06-08メモリーOCを元に戻す。MemTest86でエラー無しの状態。
古いドライバー531.29 (2023-03-14)をインストール
2023-07-021カ月近く安定して動作している。
2023-11-10ディスプレイ設定の「HDRを使用する」を有効にすると画面がブラックアウトする事象が再発した。
ドライバー537.13
2023-12-08バージョン546.29を試すが、「HDRを使用する」とブラックアウトするので無効化した。

システムのイベントログ

ソース "nvlddmkm" からのイベント ID 14 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが壊れています。ローカル コンピューターにコンポーネントをインストールするか、コンポーネントを修復してください。

イベントが別のコンピューターから発生している場合、イベントと共に表示情報を保存する必要があります。

イベントには次の情報が含まれています: 

\Device\Video3
badfbadf(badfbadf) 00000000 00000000

メッセージ リソースは存在しますが、メッセージがメッセージ テーブルに見つかりませんでした。
ソース "nvlddmkm" からのイベント ID 0 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが壊れています。ローカル コンピューターにコンポーネントをインストールするか、コンポーネントを修復してください。

イベントが別のコンピューターから発生している場合、イベントと共に表示情報を保存する必要があります。

イベントには次の情報が含まれています: 

\Device\Video3
UCodeReset TDR occurred on GPUID:100

メッセージ リソースは存在しますが、メッセージがメッセージ テーブルに見つかりませんでした。
ソース "nvlddmkm" からのイベント ID 0 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが壊れています。ローカル コンピューターにコンポーネントをインストールするか、コンポーネントを修復してください。

イベントが別のコンピューターから発生している場合、イベントと共に表示情報を保存する必要があります。

イベントには次の情報が含まれています: 

\Device\Video3
Resetting TDR occurred on GPUID:100

メッセージ リソースは存在しますが、メッセージがメッセージ テーブルに見つかりませんでした。

少し面倒なArmoury Crateのアンインストール

ASUSやROGのマザーボードでは、ドライバーのインストールやLEDの色を変えたりいろいろな設定をArmoury Crateというツールで管理しています。

このツール1つでいろいろできるので便利ではあるのですが、他社の制御ソフトなど同じ環境にインストールすると競合して不具合が出てしまうことがあります。

自分の環境では、イベントビューアーでログを見るとArmoury Crateがクラッシュが頻繁に発生しているようなので、アンインストールすることにしました。

他のソフトと同様にコントロールパネルからアンインストール可能ですが、ログを見ると削除したはずのサービスを起動しようとしていて、完全にはアンインストールできていない状態でした。

障害が発生しているアプリケーション名: NoiseCancelingEngine.exe、バージョン: 1.0.0.20、タイム スタンプ: 0x638d9314
障害が発生しているモジュール名: unknown、バージョン: 0.0.0.0、タイム スタンプ: 0x00000000
例外コード: 0xc0000005
障害オフセット: 0x0000000000000000
障害が発生しているプロセス ID: 0x0x1DE8
障害が発生しているアプリケーションの開始時刻: 0x0x1D9712501150D24
障害が発生しているアプリケーション パス: C:\Program Files (x86)\ASUS\ArmouryDevice\dll\MBLedSDK\NoiseCancelingEngine.exe
障害が発生しているモジュール パス: unknown
レポート ID: 1cd6da58-6c83-48c8-b25d-c3738c7efef5
障害が発生しているパッケージの完全な名前:
障害が発生しているパッケージに関連するアプリケーション ID:

いろいろ調べるとArmoury Crateには専用のアンインストーラーが用意されていたので、それを使用したところサービスも削除できました。

簡単ですが、忘れるので手順をメモします。

アンインストーラーのダウンロード

1.次のサポート用のリンクのページを開きます

https://www.asus.com/jp/supportonly/armoury%20crate/helpdesk_download/

2.OSを選択する(Windows 10 or 11 64biy)

3.インストーラーは表示されますが、このままではアンインストーラーは表示されないため、インストーラーの下にある「すべてを表示」リンクをクリックします。

4.Amoury Crate Uninstall Toolの「ダウンロード」ボタンをクリックする

5.ダウンロードしたArmoury_Crate_Uninstall_Tool.zipファイルを解凍する

6.解凍したフォルダを開きます(2023-04-14時点のバージョンは、Armoury Crate Uninstall Tool V2.1.11.0でした)

7.Armoury Crate Uninstall Tool.exeをダブルクリックして実行する

8.「アンインストール」ボタンをクリックする

9.「今する再起動」ボタンをクリックして再起動します

以上で終了です。

私の環境では、アプリケーションエラーが消えたので、不要なサービスをアンインストールできたと思います。できれば、標準のアンインストーラーで対応してほしいですよね。専用のアンインストーラー同梱できないのでしょうか???

WSLのエラー (Error: 0x80040326)

いつもどおりWSLを起動しようとしてエラー発生したけど、特にアップデートなどした覚えもない。

Error: 0x80040326
Error code: Wsl/Service/0x80040326
Press any key to continue…

同様のエラーが他でも発生していたようで、5時間前にgithubにIssueが上がっていました。

https://github.com/microsoft/WSL/issues/9866

幸いなことにIssueのコメントを見るとWSLのバージョンが1.1.3.0の人は発生している問題のようで、強制アップデートしたところ復旧しているようでした。

管理者権限でPowerShellを起動してコマンドによるアップデートで復旧しました。

wsl --update
更新プログラムを確認しています。
Linux 用 Windows サブシステムを更新しています。...

#アップデート後のバージョン確認
wsl --version
WSL バージョン: 1.1.6.0
カーネル バージョン: 5.15.90.1
WSLg バージョン: 1.0.50
MSRDC バージョン: 1.2.3770
Direct3D バージョン: 1.608.2-61064218
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.22621.141

私の環境では、アップデート中の処理がコンソールに表示されず、Windows11の「通知」機能による通知が表示された後から、WSLが起動できました。

WSLは度々トラブルがあるんだけど、毎回どうしてこうなるのか?

爆熱グラボ廃熱に敗北したIntel純正CPUクーラーを簡易水冷に交換する

前回、パーツを流用して仕事もできるゲーミングPCを自作しましたが、爆熱グラボ・RTX3070Tiの廃熱に完敗して全くCPUクーラーとして機能しなくなったIntel純正クーラーを簡易水冷に交換します。

昨年の熱い夏もがんばってくれた純正クーラーです。CPU単体では問題なく使えます。

爆熱グラボRTX3070Tiの前に敗北したIntel純正CPUクーラー

高性能でコスパ最高な簡易水冷CPUクーラー CORSAIR iCUE H115i RGB PRO XT

今回採用した簡易水冷CPUクーラーですが、想定外なことが発生して直前にこれに変更になりました。

CORSAIR iCUE H115i RGB PRO XT

簡易水冷360mmのラジエーターはPCケースを選ぶ

直前までは、MSI MAG Core Liquid 360R V2のような360mmのラジエーターのものにしようと思ってましたが、PCケース DEFINE R5の構造上の都合で280mmのものに変更になりました。

実は、こちらも購入してしまって・・・、Zen4でも使えるといいなぁ

MSI MAG Core Liquid 360R V

ねこグリスまで・・・、今回はH115iにグリスが塗布されているため使ってません。

SMZ-01R シミオシ ねこグリス

前回の検証の結果、CPUクーラーがRTX3070Tiの真上にあることで、グラボ廃熱の影響が大きくCPUが冷やせないことがわかりましたが、このPCケース(DEFINE R5)で360mmラジエーターとファンを設置できるのは、ケース上部のみとなります。その場合、簡易水冷にしてもラジエーターを冷やすファンの風が、グラボ廃熱をそのまま流すので影響を受けやすいかと考えました。

そのためにフロント吸気にこだわりたかったのですが、フロントは280mmまでしか設置できない構造で、ラジエーターを360mm から 280mmに変更しました。ただ、Core i5 10400は、TDP65Wなので280mmの簡易水冷でも十分冷やせるのではないかと思っています。

CORSAIR iCUE H115i RGB PRO XT パーツ

CORSAIR iCUE H115i の取り付け方法

バックプレート

このバックプレートから取り付けるのですが、設置部分が両面テープになっているので、とても簡単に付けらますね。マザーボードはひっくり返すので、手でバックプレートを押さえないと落ちてしまいますがその心配がありません。本当に助かります。

バックプレート

両面テープを剥がしてから、設置します。

ねじ穴に、はまる部分は、CPUソケットの種類によって2段階にサイズ調整できるようになっているので、LGA1200の場合は、中心部分に移動するように4か所移動させます。

そのあとに、4か所はめるとぴったりと収まります。

ちなみにH115i の説明書には、LGA1200の記載がありませんでした。まじか・・・。LGA1151と同じようなものなので、LGA1151の項目を参考にしてください。

マザーボードの背面に設置したバックプレート

ラジエーターとファン設置

かなり苦戦しました。

14cmファンは、問題なく2つともねじ穴があっているので設置できるのですが、PCケースのねじ穴の位置と、H115iのラジエーターのねじ穴の位置が異なります・・・、

遊びがない作りなので、手の打ちようがありません。

そのため、一番下の位置だけ、ファンと、間のPCケースのプレートと、ラジエーターのねじ穴を合わせて、ねじ止めしました。この2か所をしっかりとめています。もしかすると下のファンの上部2か所も止められているかもしれません。

上のファン4か所は、ファンとPCケースのプレートのみを止めているような状態になります。

ぱっと見わからないくらいちゃんとねじ止めできるように見えますね。

ぐらぐらするようなことはないので、室内で使用しているくらいなら問題ない強度だと思います。

CORSAIR H115i フロント吸気で設置

Fractal Designは、簡易水冷CPUクーラーも発売しているので、純正パーツで固めるのもいいかもしれません。フロント吸気ができるのかちゃんと調べた方がよさそうです。

通電するとゲーミングPCっぽく光ります。

ゲーミングPCっぽい光

運命のベンチマーク

3DMARK Time Spy Score

WQHD(170Hz)、G-SYNC有効で、RTX3070Ti電力制限なし(310W)で実行しました。平均値超えで、サーマルスロットリングもないですね。650W電源ですが問題なく動作しました。

HWMonitor

そして、運命のCPU温度です。

結果は、なんと最高55℃です!!!!!!!!!!

ケース閉じてこの値なので、簡易水冷とフロント吸気の大勝利です。これなら長時間PCゲーム遊んでも安定稼働できる気がします。爆熱グラボ廃熱の影響うけてないですね。フロント吸気にこだわってよかった。

ベンチマーク実行後のCPU温度

ちなみに前回のIntel純正クーラーの結果は、フィーバーフィーバーでサーマルスロットリング多発でした。

電力制限(70%)してみると

最大223.5Wの状態です。グラフィックスコアが1000以上下がっています。前回の75%制限くらいが省電力とパフォーマンスでバランスが取れている気がします。

電力制限70%(223.5W)

まとめ

  • 簡易水冷CPUクーラーは、PCケースにより、設置できるラジエーターの大きさに制限があるが、280mmでもよく冷える
  • 爆熱グラボ廃熱の影響を受けない、フロント吸気は効果絶大です
  • CPU温度が下がった影響で、ファンの回転数が低く静かなPCになりました。
  • 爆熱グラボRTX3070Tiは、電力制限75%、リフレッシュレート144Hz, G-SYNC有効が省電力とパフォーマンスのバランスが取れているかも

積んでるゲームがありすぎるので、今年はこのPCで消化していきたい!

パーツ流用・仕事もできる自作ゲーミングPCが熱すぎたので対策してみた😢

Windows11環境で遊んでみたくなったので、手持ちのパーツを流用して、ゲームも仕事もできる自作PCを組み立てることにしました。

使用したパーツは以下ものです。主に2021年春にUbuntuサーバーで検証したときに購入したものです。

種類名前購入時の価格(円)
CPUIntel Core i5 10400 BOX18,756
CPUクーラーi5-10400付属のもの
マザーボードTUF GAMING B460M-PLUS9,430
メモリーCORSAIR DDR4-3200MHz (16GB x 2枚)19,200
ストレージWD Black NVMe WDS100T2X0C (1TB)不明(4年前?)
電源HCG650 GOLD14,828
ケースFractal Design Define R5 Black Pearl12,089
自作PC・パーツ

そんなPCパーツで大丈夫か?

Core i5 10400でゲームはできるか?

CPUはコスパ重視であったため、ゲームで使えるか心配でしたが、いくつかのレビューを見た限りでは問題ないレベルで遊べそうだったので、これにグラフィックボードを追加するだけでいけるのではないかと思っています。

CPUクーラーは付属のもので大丈夫か?

Ubuntu Serverで動作検証しているときは、特に問題を感じませんでした。真夏でもパッケージのインストールや、高負荷時にクーラーが唸りだすくらいでした。ただしアイドル状態の時間が多いのであまり参考になりません。

マザーボードはWindows11に対応しているか?

マザーボードに搭載されているB460のチップセットはWindows11に対応していたので最新BIOSをASUSのサイトからダウンロードして更新しています。

メモリーの容量は?

32GBあれば、仕事でもゲームでも困ることはないかと思います。

ストレージ容量は足りているか?

容量が1TBなので、最近のゲームをいくつも追加すると足りなくなってくるかもしれません。そこは、足りなくなってから、必要に応じてSSDを追加する予定です。

m.2なので耐用年数が心配ですが、あまり使用していないので大丈夫なのではないかと。

そんな電源(650W)で大丈夫か???

電源容量は、追加するグラフィックボードの消費電力によっては交換を検討する必要があります。

今回使用するモニターは、WQHD (2560×1440) 170Hzなので、この環境である程度快適に遊べるグラフィックボードを前提に探しました。RTX3080は4K環境で遊べることを売りとしているので、その1つ下のRTX3070Ti(220W)では、WQHDで快適に遊べると想定して、消費電力も計算して問題なさそうなので、このまま交換なしとしました。

しかし、グラフィックボードを購入した後、大変なことに。

WQHD環境で遊べるグラフィックボードRTX3070Ti

グラフィックボードの価格は、2年ほどずっと高値が続いています。それは、「半導体不足」だったり、暗号資産などの「マイニング」が原因とされていて、ゲーマーが気軽に買える価格ではない状態が続いています。そろそろ落ち着いてくれるといいのですが。

お店で買える最強のグラフィックボードは、RTX3080Tiですが、価格が20万円以上なので、PCを買える金額でグラフィックボードを購入しなければいけないような状況になっています。

ただし、RTX3080Tiが快適にゲームが遊べるとは言っても、RTX3080Tiの性能を引き出すには、CPUがボトルネックにならないようにより高性能なものが必要になったり、消費電力も増えるので、電源の交換も必要にあります。今はパーツ流用を前提にすると、RTX3050, RTX3060, RTX3070Tiあたりが妥当だと思います。

価格、性能、WQHD環境から最適なRTX3070Tiを購入することにしました。

そして運命というかタイミングよくセールがあったので最安価格より安く購入することができました。(本当に感謝)そろそろ、グラボが安く買えるようになってくる兆しだといいのですが。

GeForce RTX 3070 Ti SUPRIM X 8G

GeForce RTX 3070 Ti SUPRIM X 8G
PCケースに組み込んだRTX 3070 Ti SUPRIM X 8G

しかし、購入後に製品ページを見て驚愕の事実が・・・

なんと、消費電力(W)が、310W

推奨電源ユニット容量 (W)が、850W

https://jp.msi.com/Graphics-Card/GeForce-RTX-3070-Ti-SUPRIM-X-8G/Specification

RTX3070Tiでも、オーバークロックしている製品などもあり、消費電力が上位のRTX3080並みのものが多いことを、

買う前に個別の製品のことを知っておくべきでした・・・

ベンチマーク

ゲームのベンチマークと言えば、3DMarkということで、さっそくTime Spyを実行してみました。

結果は・・・・、スコアが平均より2000くらい低い

こ、これは、サーマルスロットリングではないのか?!

「サーマルスロットリング」とは、CPU温度が閾値より上がった時に、CPU温度を下げるために動作クロックを落とす安全装置のような機能です。

3D Mark Time Spy Score

再度実行してハードウェアモニターも見てみましたが、やはりCPU温度が100℃到達しています。

サーマルスロットリングが原因で性能が低下していると見て間違いなさそうです。

HWMonitor

Ubuntu Serverで使っていた時には全く問題なかったIntel純正CPUクーラーですが、RTX3070Tiをケースに入れると爆熱になるようで、まったく使い物になりません。

やはり、爆熱のグラボ(310W)の真上にCPUクーラーがあるでの、グラボから排出される熱で送風しても冷えるはずがありません。

Core i9, i7と違って、TDPが65Wのi5 10400なら純正でも大丈夫かな?と思っていましたが、全然そんなことなかったです。AMD Ryzenに付属されてるWraith Coolerでも難しいかも。 

ただ、良かったこともあり、電源が650Wですが、何度かベンチマークを走らせても動作が不安定になることはありませんでした。HCG650 GOLDが良い電源なのかな?

爆熱グラボの廃熱がCPUを冷やせない原因と仮定した対策

すぐできる対策

  1. PCケースを開けてケース内の温度を下げる
  2. グラボの消費電力を下げて廃熱を減らす
  3. G-SYNC対応ディスプレーなので設定ありにする(ただし、リフレッシュレート以上のfpsがでないと効果なし)

グラボの消費電力は、MSI Afterbunerというツールを使って電力制限 (POWER LIMIT)を75%にしてみました。

MSI Afterbuner

対策して再ベンチマーク

な、な、な、な、なんと

結果は、サーマルスロットリングなしで完走しました。

スコアも平均を少し上回っています。CPUスコアが4151から6929に爆上げしました。

珍しく仮説が当たりすぎて怖いです。

IntelのCPUクーラーごめん。実はかなりCPUクーラーの性能を疑ってました。爆熱のグラボの上にあったら、エアフロー対策できていない限り冷やすのは難しいのかも。

消費電力は、75%制限で最大239.1Wでした。(MSI Afterbunerの監視ウィンドウ調べ)

電力制限しても平均値を上回ることができたので、性能的にも650W電源で常用しても問題ないのではないでしょうか。

グラボ廃熱対策した3DMark

G-SYNCとリフレッシュレートって?

あと、すぐにできそうなことは、リフレッシュレートを120Hzに下げてG-SYNC設定有効にしても効果あるかもしれません。G-SYNCはリフレッシュレート以上のfps出ないように制御してリフレッシュレートに合わせて描画してくれます。そのため画面のちらつきが少なくなり、消費電力も削減できて一石二鳥です。ただし、ゲームによっては残像が強くなり見づらくなることもあるらしいので、基本有効にして、やりにくいゲームがあれば無効に切り替えるのがよさそうです。

120Hzと240Hzの違いは、人それぞれで、全然違うという人や、違いが感じられないという人もいます。ただ、多くの人は、60Hzと120Hzの違いがわかります。そして、120Hz以上の世界を知ると、もう後戻りできません。そのため、動きのあるゲームをする場合は最低120Hz以上がおすすめです。e-Sportsの世界では144fps以上が標準のようなので、プロゲーマーにリスペクトして144Hzでもいいかも。

60Hz, 120Hz, 144Hz, 170Hz, 240Hz, 360Hzの違いが、どのくらいの割合の人に、どこまで判るのか?

大規模にブラインドテストしてほしいです。

※G-SYNCを有効にするには、NVIDIAのグラフィックボードと、G-SYNC対応のモニターが必要になります。

今後の課題

PCケースは閉じて運用したいので、追加でCPUクーラーを購入しようと思います。グラボ廃熱の影響を受けないように、簡易水冷のもので、フロント吸気でラジエーターを冷やすのが良さそうです。ただし、本当にエアフローだけの問題なのかは、やってみないとわかりません。PCケース開けっ放しの方が効果があるのかも・・・。

電源については、推奨は850W以上ですが、電力制限しても問題なく遊べそうで、変えるほどのメリットが今のところないので、ゲームプレー時のみMSI Afterbunerで電力制限しようと思います。それ以外の時も常時起動でよさそうです。

簡易水冷CPUクーラーで気になるのは、コスパ良さそうで、LGA1700対応しているこちらの製品です。

MSI MAG Core Liquid 360R V2

まだ、LGA1700のCPU、マザーボードは買ってないですが、将来必ず買うと思うので今後はLGA1700対応製品の方がいいですよね。

あ、でもZen4のAM5対応待ちたいけど、さすがにそれまでは待てないですね

簡易水冷でPCケース閉じても冷やせそうなら、また記事にしてみたいと思います。

スターバックス福袋2022

あけましておめでとうございます!

昨年12月に当選したスターバックス福袋2022が届きましたので、記念に画像をアップいたしました。

テーマは「Connection」とのことです。

福袋の概要はこちらから

スターバックス福袋2022の中身

大小のトートバック

ワンポイントロゴのみのシンプルな大小トートバック

大小のトートバック
お揃いでも楽しめる大小トートバッグ

ミニブランケット2枚セット

2枚のブランケットを並べると絵柄がつながるデザインになっています。

1枚のサイズ 80x60cmで膝掛けによさそうです。

ミニブランケット2枚セット
ミニブランケット2枚セット

ドリンク交換チケット(6枚)

  • 有効期間 2022/1/1 〜 2022/6/26
  • 好きなドリンク1杯と交換できます。
  • 有料カスタマイズも可能
  • 店内飲食 671円、持ち帰り 658円を超えた金額は差額の支払いが必要
ドリンク交換チケット
ドリンク交換チケット

コーヒー豆引き換えカード

  • 有効期間 2022/1/4 〜 2022/6/30
  • 指定されたコーヒー豆250gと引き換え可能
コーヒー豆引き換えカード
コーヒー豆引き換えカード
  • 以下指定されたコーヒー豆
  • ライトノート ブレンド
  • ブレックファースト ブレンド
  • グアテマラ アンティグア
  • サイレン ブレンド
  • エチオピア
  • ケニア
  • ハウス ブレンド
  • バイクプレイス ロースト
  • ディカフェ ハウス ブレンド
  • コロンビア
  • TOKYO ロースト
  • スマトラ
  • カフェ ベロナ
  • フェアトレード イタリアン ロースト
  • コモド ドラゴン ブレンド
  • エスプレッソ ロースト
  • フレンチ ロースト

パイクプレース ロースト

中挽きのコーヒー豆 250gです。早速いただきました。

詳しくはこちら

パイクプレイス ロースト
パイクプレイス ロースト

ホリデー2020ボトルシルバーグリッター355ml

蓋を回すタイプのタンブラーです。

 ホリデー2020ボトルシルバーグリッター355ml
ホリデー2020ボトルシルバーグリッター355ml

ステンレス製携帯用ボトル(真空断熱構造)

箱にスターバックス福袋2022 ステンレスボトルB 355mlと記載があるので、おそらく2022福袋オリジナルのデザインなのではないでしょうか。

  • 使用推奨量 355ml
  • 保温効力 62.3°C以上 (6時間)
  • 保冷効力 6.9 °C以下 (6時間)
  • 保温・保冷効力は目安です。
ステンレス製携帯用ボトル(真空断熱構造)
ステンレス製携帯用ボトル(真空断熱構造)

ステンレス TO GO カップタンブラー ストライプ

飲み口がスライドできるタンブラーです。

  • 品名 真空断熱タンブラー (THERMOS)
  • 容量 355ml
  • 本体 ステンレス製
  • フタ ポリプロピレン
  • フタスライド ポリプロピレン
  • パッキン シリコーンゴム
真空断熱タンブラー
真空断熱タンブラー

You Are here Collection マグ JAPAN Spring

日本の春をイメージしたエスプレッソ用?(59ml)の小さなマグです。

日本に来た外国からの観光客に喜ばれそうなデザインですね。

You Are Here Collection マグ
You Are Here Collection マグ
You Are Here Collection マグ 裏
You Are Here Collection マグ 裏

昨年は、ジムに通い始めたり、プログラミング言語の学習を始めたり、PS5で遊んだり充実した年でしたので、今年もマイペースで楽しい1年にしたいと思います。

ブログの更新は、かなりマイペースですが、私の体験したこと、ノウハウ、成果など、同じような体験をされている方、勉強や悩みに取り組んでいる方の参考になるような記事を

昨年より多く共有できるようにがんばります。

JavaScript ES2015 (ES6) メモ

この記事は個人的なJavaScriptの学習メモになります。最低限知る必要があると感じたものや、これは必ず使うと思ったことのメモです。いざ調べはじめると、膨大な量のドキュメントに圧倒されますが、 TypeScript, Reactを始める前に必要な知識であるので、少しずつまとめることにしました。JavaScriptの学習を始めたい場合は、mozillaのドキュメントがわかりやすいのでこちらがおすすめです。

https://developer.mozilla.org/ja/docs/Web/JavaScript

他のプログラミング言語経験者やJS久しぶりの人は、先にJavaScript「再」入門に目を通して、知りたいところだけ詳細なドキュメント読むのがおすすめです。

https://developer.mozilla.org/ja/docs/Web/JavaScript/A_re-introduction_to_JavaScript

変数宣言(var, let, const)

https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Grammar_and_Types#declarations

var

var name = "なまえ";

// 上書き可能
name = "ナマエ";

// 再宣言可能
var name = "";

let

// 再宣言不可
let name = "なまえ";

// 上書き可能
name = "ナマエ";

const

// 再宣言不可
// 上書き不可
const name = "なまえ";

基本的にはconst定義を使用する。const宣言でもオブジェクト、配列は変更可能。

// オブジェクト
const obj = {
  name: "なまえ",
  email: "test@example.com"
};
obj.email = "noreply@example.com";

// 配列
const arr = ["なまえ", "sample@example.com"];
arr[0] = "ナマエ";

アロー関数 () => {}

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions

functionを使わず関数宣言する

// function
function showName(name) {
  return name;
}

// アロー関数
const showName = (name) => {
  return name;
};

// アロー関数の省略記法
// 引数1つの場合のみ括弧を省略できる
// 1行で書く場合はreturnを省略できる
const showNameLength = name => name.length;

// デフォルト値
const showName = (name = "なまえ") => console.log(name + "さん");
> showName("ナマエ");
ナマエさん
> showName();
なまえさん

分割代入

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

オブジェクトからプロパティを取り出して個別の変数に代入する。特にオブジェクトの扱いが便利になる。Reactなどのフレームワークを使う場合は必須。

オブジェクトの分割代入

const user = {
  name: "なまえ",
  email: "test@example.com"
};
const {name, email} = user;

// 必要なプロパティのみ取り出す
const {email} = user;

配列の分割代入

const user = ["なまえ", "test@example.com", "tokyo"];

// 不要な値は無視できる
const [name, , city] = user;

// 後半部分をまとめて取得(スプレット構文)
const [name, ...arg] = user;

スプレット構文

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Spread_syntax

…で反復可能オブジェクトを展開できる。

// 配列
const [name, ...arg] = ["なまえ", "test@example.com", "tokyo"];
console.log(arg); // [ "test@example.com", "tokyo" ]

// オブジェクト
const {name, ...arg} = {name: "なまえ", email: "test@example.com", city: "tokyo"};
console.log(arg); // { email: "test@example.com", city: "tokyo" }

// プロパティ名で取得した場合
const {email, ...arg} = {name: "なまえ", email: "test@example.com", city: "tokyo"};
console.log(arg); // { name: "なまえ", city: "tokyo" }

テンプレートリテラル (旧テンプレート文字列)

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Template_literals

文字列を連結(+)したり出力する場合に変数展開できて、文字列中でJSをそのまま実行できる

// バッククォートで囲む
`文字列のテストです`

// ${}構文で{}内をJSとして扱う
const test = "テスト";
console.log(`文字列の${test}です`); // 文字列のテストです

// 複数行
const num = 1;
const lines = `これは
複数行のテストです。
${num + 1}もできる`
console.log(lines);

> console.log(lines);
これは
複数行のテストです。
2もできる

Array.prototype.map()メソッド

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/map

map()メソッドで、配列の全ての要素に対して呼び出して戻り値を新しい配列に格納する。

ドキュメントでは戻り値の配列を使用しない場合は、コールバックの戻り値がない場合は、forEach, for-ofの使用を推奨しています。

const cities = ["sapporo", "tokyo", "nagoya", "oosaka", "fukuoka"];
const saiAndKo = cities.map(city => `${city}最&高`);
console.log(saiAndKo)
// [ 'sapporo最&高', 'tokyo最&高', 'nagoya最&高', 'oosaka最&高', 'fukuoka最&高' ]

// 構文
let new_array = arr.map(function callback( currentValue[, index[, array]]) {
    // 新しい配列の要素を返す
}[, thisArg])

// 第2引数のindexを確認(配列の添字)
const saiAndKo = cities.map((city, index) => `${index}番の${city}最&高`);
//
[
  '0番のsapporo最&高',
  '1番のtokyo最&高',
  '2番のnagoya最&高',
  '3番のoosaka最&高',
  '4番のfukuoka最&高'
]

Array.prototype.filter()メソッド

filterメソッドはmapとは異なり、評価が真の場合のみ新しい配列に値を保存する

const cities = ["sapporo", "tokyo", "nagoya", "oosaka", "fukuoka"];
const longNames = cities.filter(word => word.length > 6);
console.log(longNames);
// [ 'sapporo', 'fukuoka' ]