tweek 0.9.5 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/tweek +2 -105
- data/lib/tweek/version.rb +1 -1
- data/sample.set +100 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbdc274f7328ea05184d341f5dee88f93cd65c25
|
4
|
+
data.tar.gz: f7e7207890f05c03e86a8652270d74ba40fbd593
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b352de37782b1728db1928e5986cd0d506188fd2b867d38770112a82d13478119339af50020c9f8540824d08820182d2b58c3e48946a6b2d0d3cb84475850e98
|
7
|
+
data.tar.gz: 565b7e18709429bd70f0a037de8266325aed810c692c268b8bf816c44e3f495aba689b5708ebeae58836312e02edc083f9e7a9c5dc046db4e4a0d66ba9f9530c
|
data/bin/tweek
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
#
|
3
3
|
# A script to check a variety of Linux system settings
|
4
|
-
# See
|
4
|
+
# See doc/sample.file for a description of these.
|
5
5
|
# By Nick Townsend, June 2017
|
6
6
|
#
|
7
7
|
require 'rubygems'
|
@@ -83,112 +83,9 @@ if kernel_ver.nil?
|
|
83
83
|
end
|
84
84
|
cs = Tweek::App.new(gflag, true, distro, distro_ver, kernel_ver)
|
85
85
|
if ARGV.empty?
|
86
|
-
fh =
|
87
|
-
fh.lineno -= 1
|
86
|
+
fh = File.open(File.expand_path('../../sample.set',__FILE__))
|
88
87
|
else
|
89
88
|
fh = ARGF
|
90
89
|
end
|
91
90
|
cs.read_sections(fh)
|
92
91
|
exit cs.results
|
93
|
-
|
94
|
-
__END__
|
95
|
-
# A documentation-rich sample for the parameter checking script
|
96
|
-
#
|
97
|
-
# Comments begin with # and extend to the end of the line
|
98
|
-
# Block comments are Ruby style =begin and =end
|
99
|
-
# Conditionals use 'k' for kernel version, 'v' for distro version and 'd' for distro
|
100
|
-
# Version conditionals use the http://guides.rubygems.org/patterns/#semantic-versioning
|
101
|
-
# Distro conditionals follow Ruby syntax and you may use string or regex comparisons
|
102
|
-
#
|
103
|
-
BLKDEV xvda # list one or more block devices here (filename globs OK)
|
104
|
-
read_ahead_kb = 1024 # to drive more merged IO
|
105
|
-
scheduler = noop # less CPU wasted stacking an elevator (for SSDs - still for EBS?)
|
106
|
-
rq_affinity = 2 # 1 to the CPU group, 2 to the actual CPU
|
107
|
-
nr_requests = 256
|
108
|
-
|
109
|
-
CLOCKSOURCE # Use cat /sys/devices/system/cl*/cl*/available_clocksource to see what's available
|
110
|
-
# xen is the default as supported on all instance types
|
111
|
-
# tsc is hardware supported and is significantly quicker, should be used on all post Sandybridge CPUs
|
112
|
-
clocksource0 = tsc
|
113
|
-
|
114
|
-
KERNEL # Kernel command line parameters
|
115
|
-
# true must be present, false must be absent, anything else is a value to be matched
|
116
|
-
xen_nopvspin = true
|
117
|
-
maxcpus = 63 # Set the number of physical cores, eliminates the 'B' hyperthreads
|
118
|
-
# This stops cores idling, eliminating turbo, but decrease latency of core spin-up
|
119
|
-
# intel_idle.max_cstate=1
|
120
|
-
numa = off if k>3.9 # won't move memory around between NUMA zones, useful with large working set
|
121
|
-
|
122
|
-
SYSCTL
|
123
|
-
vm.min_free_kbytes = 838608
|
124
|
-
vm.zone_reclaim = 1 if k~>4.9.0,d=='Ubuntu'
|
125
|
-
vm.zone_reclaim_mode = 1 if k~>3.13.0, k<4.9.0
|
126
|
-
|
127
|
-
# These parameters taken from Brendan Gregg's Re:Invent talk 2014
|
128
|
-
net.core.somaxconn = 1000
|
129
|
-
net.core.netdev_max_backlog = 5000
|
130
|
-
net.core.rmem_max = 16777216
|
131
|
-
net.core.wmem_max = 16777216
|
132
|
-
net.ipv4.tcp_wmem = 4096 12582912 16777216
|
133
|
-
net.ipv4.tcp_rmem = 4096 12582912 16777216
|
134
|
-
net.ipv4.tcp_max_syn_backlog = 8096
|
135
|
-
|
136
|
-
net.ipv4.tcp_slow_start_after_idle = 0
|
137
|
-
|
138
|
-
# When making lots of connections to a server enables reuse of a conn in time-wait status,
|
139
|
-
# if you run out of slots because of this then packets can get dropped!
|
140
|
-
#
|
141
|
-
net.ipv4.tcp_tw_reuse = 1
|
142
|
-
net.ipv4.ip_local_port_range = 1024 65535
|
143
|
-
net.ipv4.tcp_abort_on_overflow = 1 # allows a connection that is queued to be reset, not just dropped.
|
144
|
-
net.ipv4.tcp_fin_timeout = 50 if d=~/Amazon|RedHat/i
|
145
|
-
|
146
|
-
# Smoother page cache flushing: background flush earlier, aggressive later
|
147
|
-
# Brendan Gregg, Re:Invent 2014
|
148
|
-
#
|
149
|
-
vm.dirty_ratio = 80
|
150
|
-
vm.dirty_background_ratio = 5
|
151
|
-
vm.dirty_expire_centisecs = 12000
|
152
|
-
|
153
|
-
=begin
|
154
|
-
# These are all the recommended RedHat TCP settings
|
155
|
-
# not yet validated, so used as demo of multiline comments
|
156
|
-
net.ipv4.tcp_syn_retries = 0
|
157
|
-
net.ipv4.tcp_synack_retries = 0
|
158
|
-
net.ipv4.tcp_timestamps = 0
|
159
|
-
=end
|
160
|
-
|
161
|
-
NET eth0 # Define one or more network devices
|
162
|
-
# Check the IRQ strategy:
|
163
|
-
# aws: Use first numa node, split RSS from RPS
|
164
|
-
# RSS allocated across 0-7 (node 0), RPS on first numa node
|
165
|
-
# pin: Differs depending on number of cores
|
166
|
-
# 32 Apportion across the single node as follows:
|
167
|
-
# RPS allocated across cores 10-15 and 18-31
|
168
|
-
# RSS allocated across 0-7
|
169
|
-
# 64 Use both NUMA nodes, leave first core free on each node
|
170
|
-
# RPS allocated across remaining cores on each node
|
171
|
-
# RSS allocated across 1-4 (node 0) then 17-20 (node 1)
|
172
|
-
# null: Ignore this adapter
|
173
|
-
irqs = pin
|
174
|
-
driver = ena
|
175
|
-
# Check values in /sys/class/net/<device>/ tree
|
176
|
-
mtu = 9001
|
177
|
-
device/driver/module/version = 1.1.3
|
178
|
-
|
179
|
-
EXT4 /dev/xvda1 # Define one or more EXT4 devices or mountpoints (filename globs OK)
|
180
|
-
# Available parameters are those exposed in /proc/fs/ext4/<device>/options
|
181
|
-
|
182
|
-
barrier=true
|
183
|
-
stripe=0
|
184
|
-
|
185
|
-
XFS /mnt/xfstest # Define one or more XFS devices or mountpoints (filename globs OK)
|
186
|
-
# XFS parameters in the form "x.y" where x is log|data|naming|realtime
|
187
|
-
# and y is a valid name, eg. data.sunit or log.sunit
|
188
|
-
|
189
|
-
data.swidth = 2048
|
190
|
-
data.sunit = 128
|
191
|
-
data.bsize = 4096
|
192
|
-
log.sunit = 1
|
193
|
-
|
194
|
-
# vim: ft=ruby ts=8 sw=2 sts=2 et
|
data/lib/tweek/version.rb
CHANGED
data/sample.set
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
# A documentation-rich sample for the parameter checking script
|
2
|
+
#
|
3
|
+
# Comments begin with # and extend to the end of the line
|
4
|
+
# Block comments are Ruby style =begin and =end
|
5
|
+
# Conditionals use 'k' for kernel version, 'v' for distro version and 'd' for distro
|
6
|
+
# Version conditionals use the http://guides.rubygems.org/patterns/#semantic-versioning
|
7
|
+
# Distro conditionals follow Ruby syntax and you may use string or regex comparisons
|
8
|
+
#
|
9
|
+
BLKDEV xvda # list one or more block devices here (filename globs OK)
|
10
|
+
read_ahead_kb = 1024 # to drive more merged IO
|
11
|
+
scheduler = noop # less CPU wasted stacking an elevator (for SSDs - still for EBS?)
|
12
|
+
rq_affinity = 2 # 1 to the CPU group, 2 to the actual CPU
|
13
|
+
nr_requests = 256
|
14
|
+
|
15
|
+
CLOCKSOURCE # Use cat /sys/devices/system/cl*/cl*/available_clocksource to see what's available
|
16
|
+
# xen is the default as supported on all instance types
|
17
|
+
# tsc is hardware supported and is significantly quicker, should be used on all post Sandybridge CPUs
|
18
|
+
clocksource0 = tsc
|
19
|
+
|
20
|
+
KERNEL # Kernel command line parameters
|
21
|
+
# true must be present, false must be absent, anything else is a value to be matched
|
22
|
+
xen_nopvspin = true
|
23
|
+
maxcpus = 63 # Set the number of physical cores, eliminates the 'B' hyperthreads
|
24
|
+
# This stops cores idling, eliminating turbo, but decrease latency of core spin-up
|
25
|
+
# intel_idle.max_cstate=1
|
26
|
+
numa = off if k>3.9 # won't move memory around between NUMA zones, useful with large working set
|
27
|
+
|
28
|
+
SYSCTL
|
29
|
+
vm.min_free_kbytes = 838608
|
30
|
+
vm.zone_reclaim = 1 if k~>4.9.0,d=='Ubuntu'
|
31
|
+
vm.zone_reclaim_mode = 1 if k~>3.13.0, k<4.9.0
|
32
|
+
|
33
|
+
# These parameters taken from Brendan Gregg's Re:Invent talk 2014
|
34
|
+
net.core.somaxconn = 1000
|
35
|
+
net.core.netdev_max_backlog = 5000
|
36
|
+
net.core.rmem_max = 16777216
|
37
|
+
net.core.wmem_max = 16777216
|
38
|
+
net.ipv4.tcp_wmem = 4096 12582912 16777216
|
39
|
+
net.ipv4.tcp_rmem = 4096 12582912 16777216
|
40
|
+
net.ipv4.tcp_max_syn_backlog = 8096
|
41
|
+
|
42
|
+
net.ipv4.tcp_slow_start_after_idle = 0
|
43
|
+
|
44
|
+
# When making lots of connections to a server enables reuse of a conn in time-wait status,
|
45
|
+
# if you run out of slots because of this then packets can get dropped!
|
46
|
+
#
|
47
|
+
net.ipv4.tcp_tw_reuse = 1
|
48
|
+
net.ipv4.ip_local_port_range = 1024 65535
|
49
|
+
net.ipv4.tcp_abort_on_overflow = 1 # allows a connection that is queued to be reset, not just dropped.
|
50
|
+
net.ipv4.tcp_fin_timeout = 50 if d=~/Amazon|RedHat/i
|
51
|
+
|
52
|
+
# Smoother page cache flushing: background flush earlier, aggressive later
|
53
|
+
# Brendan Gregg, Re:Invent 2014
|
54
|
+
#
|
55
|
+
vm.dirty_ratio = 80
|
56
|
+
vm.dirty_background_ratio = 5
|
57
|
+
vm.dirty_expire_centisecs = 12000
|
58
|
+
|
59
|
+
=begin
|
60
|
+
# These are all the recommended RedHat TCP settings
|
61
|
+
# not yet validated, so used as demo of multiline comments
|
62
|
+
net.ipv4.tcp_syn_retries = 0
|
63
|
+
net.ipv4.tcp_synack_retries = 0
|
64
|
+
net.ipv4.tcp_timestamps = 0
|
65
|
+
=end
|
66
|
+
|
67
|
+
NET eth0 # Define one or more network devices
|
68
|
+
# Check the IRQ strategy:
|
69
|
+
# aws: Use first numa node, split RSS from RPS
|
70
|
+
# RSS allocated across 0-7 (node 0), RPS on first numa node
|
71
|
+
# pin: Differs depending on number of cores
|
72
|
+
# 32 Apportion across the single node as follows:
|
73
|
+
# RPS allocated across cores 10-15 and 18-31
|
74
|
+
# RSS allocated across 0-7
|
75
|
+
# 64 Use both NUMA nodes, leave first core free on each node
|
76
|
+
# RPS allocated across remaining cores on each node
|
77
|
+
# RSS allocated across 1-4 (node 0) then 17-20 (node 1)
|
78
|
+
# null: Ignore this adapter
|
79
|
+
irqs = pin
|
80
|
+
driver = ena
|
81
|
+
# Check values in /sys/class/net/<device>/ tree
|
82
|
+
mtu = 9001
|
83
|
+
device/driver/module/version = 1.1.3
|
84
|
+
|
85
|
+
EXT4 /dev/xvda1 # Define one or more EXT4 devices or mountpoints (filename globs OK)
|
86
|
+
# Available parameters are those exposed in /proc/fs/ext4/<device>/options
|
87
|
+
|
88
|
+
barrier=true
|
89
|
+
stripe=0
|
90
|
+
|
91
|
+
XFS /mnt/xfstest # Define one or more XFS devices or mountpoints (filename globs OK)
|
92
|
+
# XFS parameters in the form "x.y" where x is log|data|naming|realtime
|
93
|
+
# and y is a valid name, eg. data.sunit or log.sunit
|
94
|
+
|
95
|
+
data.swidth = 2048
|
96
|
+
data.sunit = 128
|
97
|
+
data.bsize = 4096
|
98
|
+
log.sunit = 1
|
99
|
+
|
100
|
+
# vim: ft=ruby ts=8 sw=2 sts=2 et
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tweek
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Townsend
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -74,6 +74,7 @@ files:
|
|
74
74
|
- lib/tweek/app.rb
|
75
75
|
- lib/tweek/section.rb
|
76
76
|
- lib/tweek/version.rb
|
77
|
+
- sample.set
|
77
78
|
- tweek.gemspec
|
78
79
|
homepage:
|
79
80
|
licenses:
|