git.iko.soy/xmrig-bash-scripts
on master help sign in
Move some variables to functions
commit065c2e6138de89ecc23aa69a9eeeabc6998c7fa2 authorSean Wheller <sean@prepaidmeters.com> dateSat 10 Aug 2019, 09:36 (7 years ago) parentcef04fd
3 files changed+62−58
functions.sh+54 install.sh−1 settings.sh+8−57
functions.sh+54
@@ -37,3 +37,57 @@ start_xmrig () {
3737stop_xmrig () {
3838 screen -S $_XMRIG_SCREEN -X kill
3939}
40+
41+check_cpu () {
42+ # Check if CPU supports AES-NI
43+ cpuid | grep -i aes > hw-aes.txt
44+ if grep -q true "hw-aes.txt"; then
45+ _AES_NI=true
46+ else
47+ _AES_NI=false
48+ fi
49+ rm hw-aes.txt
50+
51+ # Get number of available CPU Cores
52+ _ENV_CORE=$(nproc --all)
53+ echo -e "CPU Cores: $_ENV_CORE\n"
54+
55+ # Get CPU L3 cache value
56+ _ENV_CORE_L3=$(getconf LEVEL3_CACHE_SIZE)
57+ echo -e "L3 Cache in byte: $_ENV_CORE_L3\n"
58+}
59+
60+calc_threads () {
61+
62+ # Affine number of threads for _CPU_CN
63+ _COUNTER="$(($_ENV_CORE_THREADS - 1))"
64+ _ENV_CPU_THREADS=()
65+
66+ for i in `seq 0 $_COUNTER`; do
67+ _ENV_CPU_THREADS+=("$i")
68+ done
69+
70+ echo "Thread CPU Affinity: ${_ENV_CPU_THREADS[@]}"
71+ _ENV_CPU_THREAD_AFFINITY="${_ENV_CPU_THREADS[@]}"
72+
73+ # Setting according to cpu cores but xmrig will not use all
74+ # change to make value use _ENV_CORE_THREADS
75+ # Check that hugepages set in /etc/sysctl.conf
76+ _ENV_CHECK="nr_hugepages"
77+
78+ if sudo grep -q $_ENV_CHECK /etc/sysctl.conf; then
79+ echo "Found nr_hugepages in /etc/sysctl.conf. All good!!"
80+ echo -e "Refreshing sysctl configuration just to be sure.\n"
81+ sudo sysctl -p
82+ else
83+ # Set value in current env
84+ echo -e "Did not find nr_hugepages in /etc/sysctl.conf. Fixing that!!\n"
85+ sudo sysctl -w vm.nr_hugepages="$_ENV_CORE"
86+ sudo sysctl -p
87+
88+ # Add value to sysctl
89+ echo "vm.nr_hugepages=$_ENV_CORE" | sudo tee -a /etc/sysctl.conf
90+ fi
91+
92+}
93+
install.sh−1
@@ -11,7 +11,6 @@ fi
1111
1212# Get settings
1313. settings.sh
14−. functions.sh
1514sleep 5
1615
1716# Stop running instance
settings.sh+8−57
@@ -17,6 +17,9 @@ _POOL_SERVER_PORT="3333"
1717
1818#####################################################################
1919
20+# Load functions
21+. functions.sh
22+
2023# Set working directory
2124_WORK_DIR="$(pwd)"
2225cd $_WORK_DIR
@@ -70,63 +73,11 @@ echo -e "Cron on days: $_USER_CRONDAYS\n"
7073_XMRIG_SCREEN="xmrig-cpu"
7174echo -e "Screen session name: $_XMRIG_SCREEN\n"
7275
73−# Check if CPU supports AES-NI
74−cpuid | grep -i aes > hw-aes.txt
75−if grep -q true "hw-aes.txt"; then
76− _AES_NI=true
77−else
78− _AES_NI=false
79−fi
80−rm hw-aes.txt
81−
82−# Get number of available CPU Cores
83−_ENV_CORE=$(nproc --all)
84−echo -e "CPU Cores: $_ENV_CORE\n"
85−
86−# Get CPU L3 cache value
87−_ENV_CORE_L3=$(getconf LEVEL3_CACHE_SIZE)
88−echo -e "L3 Cache in byte: $_ENV_CORE_L3\n"
89−
90−# Determine number of threads possible
91−_ENV_CORE_L3_MB="$(($_ENV_CORE_L3 / 1000000))"
92−echo -e "L3 cache in Megabyte: $_ENV_CORE_L3_MB\n"
93−
94−# Determine number of threads possible
95−_ENV_CORE_THREADS="$(($_ENV_CORE_L3_MB / 2))"
96−echo "Each thread requires 2 MB of cache"
97−echo -e "Number of threads possible is: $_ENV_CORE_THREADS\n"
98−
99−# Affine number of threads for _CPU_CN
100−_COUNTER="$(($_ENV_CORE_THREADS - 1))"
101−_ENV_CPU_THREADS=()
102−
103−for i in `seq 0 $_COUNTER`; do
104− _ENV_CPU_THREADS+=("$i")
105−done
106−
107−echo "Thread CPU Affinity: ${_ENV_CPU_THREADS[@]}"
108−
109−_ENV_CPU_THREAD_AFFINITY="${_ENV_CPU_THREADS[@]}"
110−
111−
112−# Setting according to cpu cores but xmrig will not use all
113−# change to make value use _ENV_CORE_THREADS
114−# Check that hugepages set in /etc/sysctl.conf
115−_ENV_CHECK="nr_hugepages"
116−
117−if sudo grep -q $_ENV_CHECK /etc/sysctl.conf; then
118− echo "Found nr_hugepages in /etc/sysctl.conf. All good!!"
119− echo -e "Refreshing sysctl configuration just to be sure.\n"
120− sudo sysctl -p
121−else
122− # Set value in current env
123− echo -e "Did not find nr_hugepages in /etc/sysctl.conf. Fixing that!!\n"
124− sudo sysctl -w vm.nr_hugepages="$_ENV_CORE"
125− sudo sysctl -p
126−
127− # Add value to sysctl
128− echo "vm.nr_hugepages=$_ENV_CORE" | sudo tee -a /etc/sysctl.conf
129−fi
76+# call check_cpu
77+check_cpu
78+
79+# call calc_threads
80+calc_threads
13081
13182# Run apt maintenance
13283# 1 = yes 0 = no