From 691bc76b60dd0bb8463c30c3f1e013985db33e1b Mon Sep 17 00:00:00 2001 From: David Young Date: Tue, 30 Jan 2018 22:09:18 +1300 Subject: [PATCH] Updated minerhotel --- manuscript/recipies/cryptominer/minerhotel.md | 45 +++++++- manuscript/recipies/cryptominer/monitor.md | 83 -------------- manuscript/recipies/cryptominer/nvidia-gpu.md | 102 ++++++++++++++++++ 3 files changed, 145 insertions(+), 85 deletions(-) diff --git a/manuscript/recipies/cryptominer/minerhotel.md b/manuscript/recipies/cryptominer/minerhotel.md index f717676..2e25613 100644 --- a/manuscript/recipies/cryptominer/minerhotel.md +++ b/manuscript/recipies/cryptominer/minerhotel.md @@ -8,7 +8,7 @@ So, you have GPUs. You can mine cryptocurrency. But **what** cryptocurrency shou 1. You could manually keep track of [whattomine](http://whattomine.com/), and launch/stop miners based on profitability/convenience, as you see fit. 2. You can automate the process of mining the most profitable coin based on your GPUs' capabilities and the current market prices, and do better things with your free time! (_[receiving alerts](/recipies/crytominer/monitor/), of course, if anything stops working!_) -This recipe covers option #2 :) +This recipe covers option #2 😁 [Miner hotel](http://minerhotel.com/) is a collection of scripts and config files to fully automate your mining across AMD or Nvidia cards. @@ -16,6 +16,7 @@ This recipe covers option #2 :) ## Ingredients * [Latest Minerhotel release](http://minerhotel.com/download.html) for Linux +* Time and patience ## Preparation @@ -54,10 +55,50 @@ For the whattomine bot to select the most profitable coin to mine for **your** G ### Test miners -Before trusting the whattomine service to launch your miners, test each one first by starting them manually, and then checking their status. +Before trusting the whattomine service to automatically launch your miners, test each one first by starting them manually, and then checking their status. For example, to test the **miner-amd-eth-ethhash-ethermine** miner, run 1. ```systemctl start miner-amd-eth-ethhash-ethermine.service``` to start the service 2. And then watch the output by running ```journalctl -u miner-amd-eth-ethhash-ethermine -f``` 3. When you're satisfied it's working correctly (_without errors and with a decent hashrate_), stop the miner again by running ```systemctl stop miner-amd-eth-ethhash-ethermine```, and move onto testing the next one. + +## Serving + +### Launch whattomine + +Finally, run ```systemctl start minerhotel-whattomine``` and then ```journalctl -u minerhotel-whattomine -f``` to watch the output. Within a minute, you should see whattomime launching the most profitable miner, as illustrated below: + +``` +Jan 29 13:49:38 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:49:38+1300 whattomine.js Loading whattominebot +Jan 29 13:49:38 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:49:38+1300 whattomine.js Starting whattominebot now. +Jan 29 13:50:45 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:50:45+1300 whattomine.js Mining Ethereum|ETH|Ethash|0.0089|0.00093|100 +Jan 29 13:50:45 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:50:45+1300 whattomine.js Could not find a miner for Ubiq. +Jan 29 13:51:39 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:51:39+1300 whattomine.js Mining Ethereum|ETH|Ethash|0.0089|0.00094|100 +Jan 29 13:51:39 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:51:39+1300 whattomine.js Could not find a miner for Ubiq. +``` + +!!! note + The messages about "Could not find miner" can be ignored, they indicate that one of the preferred coins on whattomine does not have a miner defined. + +To make whattomine start automatically in future, run ```systemctl enable minerhotel-whattomine``` + +## Continue your adventure + +Now, continue to the next stage of your grand mining adventure: + +1. Build your [mining rig](/recipies/cryptominer/mining-rig/) 💻 +2. Setup your [AMD](/recipies/cryptominer/amd-gpu/) or [Nvidia](/recipies/cryptominer/nvidia-gpu/) GPUs 🎨 +3. Setup your miners with Miner Hotel] 🏨 (This page) +4. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 +5. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: +6. [Profit](/recipies/cryptominer/profit/)! 💰 + + +## Chef's Notes + +### Tip your waiter (donate) 👏 + +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 + +### Your comments? 💬 diff --git a/manuscript/recipies/cryptominer/monitor.md b/manuscript/recipies/cryptominer/monitor.md index 4c8d2c5..298c691 100644 --- a/manuscript/recipies/cryptominer/monitor.md +++ b/manuscript/recipies/cryptominer/monitor.md @@ -1,88 +1,5 @@ # Monitor -<<<<<<< Updated upstream -!!! warning - This is not a complete recipe - it's a component of the [cryptominer](/recipies/cryptominer/) "_uber-recipe_", but has been split into its own page to reduce complexity. - -So, you're a miner! But if you're not **actively** mining, are you still a miner? This page details how to **measure** your mining activity, and how to raise an alert when a profit-affecting issue affects your miners. - -## Ingredients - -1. [InfluxDB+Grafana](https://www.funkypenguin.co.nz/note/adding-custom-data-to-influxdb-and-grafana/) instance, for visualising data -2. [Icinga](https://www.icinga.com/), [Nagios](https://www.nagios.org/) etc for alarming on GPU/miner status -3. [Asi MPM](https://www.asimpm.com/) (iOS) for monitoring your miner/pool status -4. [Altpocket](https://altpocket.io/?ref=ilVqdeWbAv), [CoinTracking](https://cointracking.info?ref=F560640), etc for managing your crypto-asset portfolio (_referral links_) - -## Preparation - -### Visualising performance - -![Visualise mining performance](../../images/cryptominer_grafana.png) - -Since [Minerhotel](/recipies/crytominer/minerhotel/) switches currency based on what's most profitable in the moment, it's hard to gauge the impact of changes (overclocking, tweaking, mining pools) over time. - -I hacked up a bash script which grabs performance data from the output of the miners, and throws it into an InfluxDB database, which can then be visualized using Grafana. - -Here's an early version of the script (_it's since been updated for clockspeed and power usage too_): - - - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes up-to-date versions of the InfluxDB /Grafana script mentioned above, as well as pre-setup Grafana graphs, so that patrons can simply "_git pull_" and start monitoring 👍 - - -### Alarming on failure - -![Visualise mining performance](../../images/cryptominer_alarm.png) - -GPU mining can fail in subtle ways. On occasion, I've tweaked my GPUs to the point that the miner will start, but one or all GPUs will report a zero hash rate. I wanted to be alerted to such profit-affecting issues, so I wrote a bash script (_intended to be executed by NRPE from Icinga, Nagios, etc_). - -The script tests the output of the currently active miner, and ensures the GPUs have a valid hashrate. - - - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes up-to-date versions of the Icinga scripts mentioned above, so that patrons can simply "_git pull_" and start monitoring 👍 - -### Monitoring pool/miner status - -I've tried several iOS apps for monitoring my performance across various. The most useful app I've found thus far is [Asi MPM](https://www.asimpm.com/). It requires a little upfront effort to configure for all your coins/pools, but thereafter it's a handy way to keep tabs on your new obsession! - -### Track your portfolio - -Now that you've got your coins happily cha-chinging into you wallets (and potentially various exchanges), you'll want to monitor the performance of your portfolio over time. - -There's a detailed breakdown of porfolio-management apps [here](https://www.cryptostache.com/2017/11/10/keeping-track-cryptocurrency-portfolio-best-apps-2017/). - -Personally, I use: - -* [Altpocket](https://altpocket.io/?ref=ilVqdeWbAv) (A free web app which can auto-sync with certain exchanges and wallets) -* [CoinTracking](https://cointracking.info?ref=F560640) - The top crypto-portfolio manager, by far. But it's expensive when you get to > 200 trades. You get what you pay for ;) - -!!! note - Both of the links above are referral links. I get some goodies when you use them. - -## Continue your adventure - -Now, continue to the next stage of your grand mining adventure: - -1. Build your [mining rig](/recipies/cryptominer/mining-rig/) 💻 -2. Setup your [AMD](/recipies/cryptominer/amd-gpu/) or [Nvidia](/recipies/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 -4. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 -5. Monitor your empire :heartbeat: (_this page_) -6. [Profit](/recipies/cryptominer/profit/)! 💰 - -## Chef's Notes - -1. Ultimately I hope to move all the configuration / mining executables into docker containers, but for now, they're running on a CentOS7 host for direct access to GPUs. (Apparently it _may_ be possible to pass-thru the GPUs to docker containers, but I wanted stability first, before abstracting my hardware away from my miners) - -### Tip your waiter (donate) 👏 - -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 - -### Your comments? 💬 -======= ![Monitor Screenshot](../../images/cryptominer_monitor.png) ## Monitor your GPUs diff --git a/manuscript/recipies/cryptominer/nvidia-gpu.md b/manuscript/recipies/cryptominer/nvidia-gpu.md index 2f86f04..ade917a 100644 --- a/manuscript/recipies/cryptominer/nvidia-gpu.md +++ b/manuscript/recipies/cryptominer/nvidia-gpu.md @@ -49,6 +49,8 @@ reboot ## Overclock +### Preparation + !!! warning Like overclocking itself, this process is still a work in progress. YMMV. @@ -59,3 +61,103 @@ The following command: configures X11 for a "fake" screen so that X11 will run, ``` nvidia-xconfig -a --allow-empty-initial-configuration --cool-bits=28 --use-display-device="DFP-0" --connected-monitor="DFP-0" --enable-all-gpus --separate-x-screens ``` + +!!! note + The script below was taken from https://github.com/Cyclenerd/ethereum_nvidia_miner + +Make a directory for your overclocking script. Mine happens to be /root/overclock/, but use whatever you like. + +Create settings.conf as follows: + +``` +# Known to work with Nvidia 1080ti, but probably not optimal. It's an eternal work-in-progress. +MY_WATT="200" +MY_CLOCK="100" +MY_MEM="400" +MY_FAN="60" +``` + +Then create nvidia-overclock.sh as follows: + +``` +#!/usr/bin/env bash + +# +# nvidia-overclock.sh +# Author: Nils Knieling - https://github.com/Cyclenerd/ethereum_nvidia_miner +# +# Overclocking with nvidia-settings +# + +# Load global settings settings.conf +if ! source ~/overclock/settings.conf; then + echo "FAILURE: Can not load global settings 'settings.conf'" + exit 9 +fi + +export DISPLAY=:0 + +# Graphics card 1 to 6 +for MY_DEVICE in {0..5} +do + # Check if card exists + if nvidia-smi -i $MY_DEVICE >> /dev/null 2>&1; then + nvidia-settings -a "[gpu:$MY_DEVICE]/GPUPowerMizerMode=1" + # Fan speed + nvidia-settings -a "[gpu:$MY_DEVICE]/GPUFanControlState=1" + nvidia-settings -a "[fan:$MY_DEVICE]/GPUTargetFanSpeed=$MY_FAN" + # Graphics clock + nvidia-settings -a "[gpu:$MY_DEVICE]/GPUGraphicsClockOffset[3]=$MY_CLOCK" + # Memory clock + nvidia-settings -a "[gpu:$MY_DEVICE]/GPUMemoryTransferRateOffset[3]=$MY_MEM" + # Set watt/powerlimit. This is also set in miner.sh at autostart. + sudo nvidia-smi -i "$MY_DEVICE" -pl "$MY_WATT" + fi +done + +echo +echo "Done" +echo +``` + +### Start your engine! + +**Once** you've got X11 running correctly, execute ,/nvidia-overclock.sh, and you should see something like the following: + +``` +[root@kvm overclock]# ./nvidia-overclock.sh + Attribute 'GPUPowerMizerMode' (kvm.funkypenguin.co.nz:0[gpu:0]) assigned value 1. + Attribute 'GPUFanControlState' (kvm.funkypenguin.co.nz:0[gpu:0]) assigned value 1. + Attribute 'GPUTargetFanSpeed' (kvm.funkypenguin.co.nz:0[fan:0]) assigned value 60. + Attribute 'GPUGraphicsClockOffset' (kvm.funkypenguin.co.nz:0[gpu:0]) assigned value 100. + Attribute 'GPUMemoryTransferRateOffset' (kvm.funkypenguin.co.nz:0[gpu:0]) assigned value 400. + +Power limit for GPU 00000000:04:00.0 was set to 150.00 W from 150.00 W. +All done. + +Done + +[root@kvm overclock]# +``` + +Play with changing your settings.conf file until you break it, and then go back one revision :) + +## Continue your adventure + +Now, continue to the next stage of your grand mining adventure: + +1. Build your [mining rig](/recipies/cryptominer/mining-rig/) 💻 +2. Setup your [AMD](/recipies/cryptominer/amd-gpu/) or Nvidia (_this page_) GPUs 🎨 +3. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 +4. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 +5. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: +6. [Profit](/recipies/cryptominer/profit/)! 💰 + + +## Chef's Notes + +### Tip your waiter (donate) 👏 + +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 + +### Your comments? 💬