Merge "Fix numerous issues in AMI related scriptology" from Vlad

"
A few fixes in scripts that were found when debugging #3508.
This series fixed this issue.

"

Fixes #3508

* 'ami_scripts_fixes-v1' of https://github.com/vladzcloudius/scylla:
  scylla_io_setup: properly define the disk_properties YAML hierarchy
  scylla_io_setup: fix a typo: s/write_bandwdith/write_bandwidth/
  scylla_io_setup: hardcode the "mountpoint" YAML node to "/var/lib/scylla" for AMIs
  scylla_io_setup: print the io_properties.yaml file name and not its handle info
  scylla_lib.sh: tolerate perftune.py errors
This commit is contained in:
Avi Kivity
2018-06-19 19:31:23 +03:00
2 changed files with 25 additions and 9 deletions

View File

@@ -39,32 +39,33 @@ if __name__ == "__main__":
idata = scylla_util.aws_instance()
disk_properties = {}
disk_properties["mountpoint"] = "/var/lib/scylla"
nr_disks = len(idata.ephemeral_disks())
## both i3 and i2 can run with 1 I/O Queue per shard
if idata.instance() == "i3.large":
disk_properties["read_iops"] = 111000
disk_properties["read_bandwidth"] = 653925080
disk_properties["write_iops"] = 36800
disk_properties["write_bandwdith"] = 215066473
disk_properties["write_bandwidth"] = 215066473
elif idata.instance() == "i3.xlarge":
disk_properties["read_iops"] = 200800
disk_properties["read_bandwidth"] = 1185106376
disk_properties["write_iops"] = 53180
disk_properties["write_bandwdith"] = 423621267
disk_properties["write_bandwidth"] = 423621267
elif idata.instance_class() == "i3":
disk_properties["read_iops"] = 411200 * nr_disks
disk_properties["read_bandwidth"] = 2015342735 * nr_disks
disk_properties["write_iops"] = 181500 * nr_disks
disk_properties["write_bandwdith"] = 808775652 * nr_disks
disk_properties["write_bandwidth"] = 808775652 * nr_disks
elif idata.instance_class() == "i2":
disk_properties["read_iops"] = 64000 * nr_disks
disk_properties["read_bandwidth"] = 507338935 * nr_disks
disk_properties["write_iops"] = 57100 * nr_disks
disk_properties["write_bandwdith"] = 483141731 * nr_disks
disk_properties["write_bandwidth"] = 483141731 * nr_disks
properties_file = file("/etc/scylla.d/io_properties.yaml", "w")
yaml.dump({ "disks": disk_properties }, properties_file, default_flow_style=False)
yaml.dump({ "disks": [ disk_properties ] }, properties_file, default_flow_style=False)
ioconf = file("/etc/scylla.d/io.conf", "w")
ioconf.write("SEASTAR_IO=\"--io-properties-file={}\"\n".format(properties_file))
ioconf.write("SEASTAR_IO=\"--io-properties-file={}\"\n".format(properties_file.name))
else:
if os.environ.has_key("SCYLLA_CONF"):
conf_dir = os.environ["SCYLLA_CONF"]

View File

@@ -46,6 +46,21 @@ verify_args() {
fi
}
#
# get_mode_cpu_set <mode name, e.g. 'mq', 'sq', 'sq_split'>
#
get_mode_cpu_set() {
local mode=$1
local mode_cpu_mask=`/usr/lib/scylla/perftune.py --tune net --nic "$nic" --mode "$mode" --get-cpu-mask` 2>&-
# If the given mode is not supported - return invalid CPU set
if [[ "$?" -ne "0" ]]; then
echo "-1"
else
echo "$mode_cpu_mask" | /usr/lib/scylla/hex2list.py
fi
}
#
# check_cpuset_conf <NIC name>
#
@@ -56,9 +71,9 @@ get_tune_mode() {
[[ ! -e '/etc/scylla.d/cpuset.conf' ]] && return
local cur_cpuset=`cat /etc/scylla.d/cpuset.conf | cut -d "\"" -f2- | cut -d" " -f2`
local mq_cpuset=`/usr/lib/scylla/perftune.py --tune net --nic "$nic" --mode mq --get-cpu-mask | /usr/lib/scylla/hex2list.py`
local sq_cpuset=`/usr/lib/scylla/perftune.py --tune net --nic "$nic" --mode sq --get-cpu-mask | /usr/lib/scylla/hex2list.py`
local sq_split_cpuset=`/usr/lib/scylla/perftune.py --tune net --nic "$nic" --mode sq_split --get-cpu-mask | /usr/lib/scylla/hex2list.py`
local mq_cpuset=`get_mode_cpu_set 'mq'`
local sq_cpuset=`get_mode_cpu_set 'sq'`
local sq_split_cpuset=`get_mode_cpu_set 'sq_split'`
local tune_mode=""
case "$cur_cpuset" in