-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenvsetup.sh
More file actions
111 lines (89 loc) · 2.1 KB
/
Copy pathenvsetup.sh
File metadata and controls
111 lines (89 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/bin/bash
# ref
# https://github.com/vtess/Pond/blob/master/cxl-global.sh
flush_fs_caches()
{
echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null 2>&1
sleep 5
}
disable_nmi_watchdog()
{
echo 0 | sudo tee /proc/sys/kernel/nmi_watchdog >/dev/null 2>&1
}
disable_turbo()
{
echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo >/dev/null 2>&1
}
enable_turbo()
{
echo 0 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo >/dev/null 2>&1
}
# 0: no randomization, everything is static
# 1: conservative randomization, shared libraries, stack, mmap(), VDSO and heap are randomized
# 2: full randomization, the above points to 1 plus brk()
disable_va_aslr()
{
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space >/dev/null 2>&1
}
disable_swap()
{
sudo swapoff -a
}
disable_ksm()
{
echo 0 | sudo tee /sys/kernel/mm/ksm/run >/dev/null 2>&1
}
disable_numa_balancing()
{
echo 0 | sudo tee /proc/sys/kernel/numa_balancing >/dev/null 2>&1
}
disable_thp()
{
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled >/dev/null 2>&1
}
disable_ht()
{
echo off | sudo tee /sys/devices/system/cpu/smt/control >/dev/null 2>&1
}
enable_ht()
{
echo on | sudo tee /sys/devices/system/cpu/smt/control >/dev/null 2>&1
}
set_performance_mode()
{
for governor in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
echo performance | sudo tee $governor >/dev/null 2>&1
done
}
set_powersave_mode()
{
for governor in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
echo powersave | sudo tee $governor >/dev/null 2>&1
done
}
check_pmqos()
{
local pmqospid=$(ps -ef | grep pmqos | grep -Ev 'sudo |grep' | awk '{print $2}')
#set_performance_mode
[[ -n "$pmqospid" ]] && return
sudo nohup ./pmqos >/dev/null 2>&1 &
sleep 3
# double check
pmqospid=$(ps -ef | grep pmqos | grep -Ev 'sudo |grep' | awk '{print $2}')
if [[ -z "$pmqospid" ]]; then
echo "Error: failed to start pmqos!"
exit
fi
}
sudo service mysql stop
set_performance_mode
disable_nmi_watchdog
disable_va_aslr
disable_ksm
disable_numa_balancing
disable_thp
disable_ht
disable_turbo
check_pmqos
disable_swap
flush_fs_caches