ここのところ寒くなってきたので Coin Mining で暖を取っています

読了まで:約4分


と​言う​感じなのですが、​自分は​こうやっているよ、​と​言う​話を​一つ。

基本的な​マシンの​構成と​ Miner に​ついて

私の​メインマシンの​スペックは​ 私の​ PC 環境​(2021 年 10 月)​ に​書いてある​通りなのですが、​ 今後の​変更した​時の​ために​今の​状態を​記載しておくと、​今の​ところ​ Mining に​関係しそうな​スペックは​下記の​通りです:

  • OS: NixOS
  • CPU: Ryzen 9 3950X
  • GPU: NVIDIA RTX 2060
  • MEM: 128GB

この​時点で​ちょっと​金の​弾丸が​過ぎる​様な​気は​する​ものの、​ 壊れない​限り​当面は​維持する​予定の​スペックなので​そこは​良いと​して、​ 基本的には​この​スペックの​余剰リソースを​使って​ Coin Mining を​しています。

な​お CryptoCurrency の​ Mining には​次の​オープンソースの​ Miner を​使っていますが、​ nsfminer や​その前に​使っていた​ ethminer は​開発が​完了していたり止まっていたりするので、​ その​辺りは​暫定的に、と​言う​感じです:

どの​様に​ CryptoCurrency Minig を​起動しているか

この​辺りに​ついては​ foreman の​ Go 言語実装である​ goreman を​用いて​ XMRig と​ nsfminer を​手動で​並列実行する​様に​しており、​ かつ sudo 経由で​コマンドを​実行し CPU や​ GPU の​最適化を​すると​言う​様な​ことを​しています。

ちなみに​ NVIDIA RTX 2060 の​最適化と、​Ryzen 9 3950X の​最適化に​ついては、

に​全部​コマンドが​書いて​あったりしますが、​一応​ここでも​書いておくと、​ まず​ Ryzen 9 3950X の​ msr の​最適化は​次の​通りに​なっています:

if test -z "$(lsmod | grep msr)"; then
  modprobe msr allow_writes=on
  wrmsr -a 0xc0011020 0
  wrmsr -a 0xc0011021 0x40
  wrmsr -a 0xc0011022 0x1510000
  wrmsr -a 0xc001102b 0x2000cc16
fi

それで​この​辺りの​ msr の​最適化に​ついては、

を​簡略化して​突っ込んであるだけで、xmrig​ の​ commandline の​ flags に​ついては、​次の​ flag が​指定されています:

xmrig \
  --coin monero \
  --donate-level 0 \
  --randomx-1gb-pages \
  --threads 28 \
  -a rx/0 \
  -k --nicehash \
  -o randomxmonero.usa-west.nicehash.com:3380 \
  -p x \
  -u 3QGD7oFMEHH4m8CgLxK1msoJMaB8XA3wGT.NyZen9 \

上記の​最適化用 flags の​内、--nicehash​ に​ついては​ nicehash を​ pool に​使っているの​ために​追加していて、​ かつメモリが​潤沢に​ある​ことから​ --randomx-1gb-pages も​指定してある​感じですね。

また​ --threads が​ 28 なのは、​16 Core 32 threads ある​ Ryzen 9 3950X の​スレッドの​内、​ 4 threads ぐらいは​残しておかないと​ PC の​動作に​支障が​出るからです。​ と​言うより​ 4 threads でも​日常の​利用には​困らないので、​まぁリソース余り過ぎですね。

次に​ GPU の​最適化に​ついてですが、​これは​ services/app/mining の​リポジトリ内にも​ある​通り、​ 下記の​様な​値が​指定されています:

nvidia-smi -pl 125
nvidia-smi -lgc 1250,1250
nvidia-smi -gtt 75
nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1'
nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[1]=1600'
nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[2]=1600'
nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[3]=1600'
nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[4]=1600'

な​おこの​ GPU の​最適化に​ついては​過去に​ Windows 10 上で​ mining していた​時の​値や、​ 実際に​値を​調整して​最適化を​図った​値なので、​ 完全に​環境依存の​固有値です

また​ nvidia GPU の​ Clock を​ linux で​弄る​様に​する​ためには、​ Xorg の​ Screen セクションに​次の​値が​必要です:

    Option "Coolbits" "28"
    Option "AllowEmptyInitialConfiguration"

あと​私は​ NixOS ​使いなので​ Xorg の​設定を​容赦なく​触れますが、​ 他の​ Linux 環境だと​下手に​ Xorg の​設定を​触ると​ GUI が​死ぬ可能性も​あるので、​ その​辺りは​慎重に​やりましょう。

以上

ちなみに​上記の​様な​感じで​私は​ Desktop PC を​暖房代わりに​使っているのですが、​ 天気が​良かったり部屋の​換気が​疎かだったりすると​ 余裕で​室温が​上がりすぎます 。​ なので​この​辺りは​適宜窓を​上けるなどして​調整していたりしますね。

また​ hashrate に​ついては、​GPU の​ daggerhashimoto が​ 29-30 Mh 、​ CPU の​ randomx が​ 17-20 Kh ぐらいで、​フルで​一日​動かしても​収益は​ 300 円前後な​ため、​ まぁ​暖房代ぐらいには​なるのか……?​ と​言う​感じに​なります。​なので​完全に​趣味ですね。

その​ため儲けが​出るのか?​ と​言われたら​ 間違いなく​出てない ですし、​ その​ Mining で​捻出した​ Bitcoin に​ついても​ PancakeSwap の​ Auto CAKE に​突っ込んで​放置 しているので、​ まぁ​ 完全に​ポイント増やして​喜ぶ​遊びに​なっています 。​なので​ 有り金は​突っ込んで​ません

と​言う​感じで​完全に​お遊びで​ CryptoCurrency Mining を​やっていたりしますが、​ Mining していると​ PC が​エアコンとか​電気ヒーターの​代わりぐらいには​なりますよーと​言う​話でした。​ まぁ​ PC の​寿命が​縮みそうですけどね。​CryptoCurrency Mining は。

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。