5f5255bc01
Updated clean.sh to remove Glance's Apache uWSGI config files in APACHE_CONF_DIR, including /etc/apache2/sites-enabled/ on Ubuntu. Test Plan: - Run clean.sh. - Confirm Glance uWSGI configs are removed from APACHE_CONF_DIR. Closes-Bug: #2057999 Change-Id: I44475b8e084c4b20d7b7cb7f28574f797dbda7a2
99 lines
3.8 KiB
Bash
99 lines
3.8 KiB
Bash
#!/bin/bash
|
|
|
|
# Kernel Samepage Merging (KSM)
|
|
# -----------------------------
|
|
|
|
# Processes that mark their memory as mergeable can share identical memory
|
|
# pages if KSM is enabled. This is particularly useful for nova + libvirt
|
|
# backends but any other setup that marks its memory as mergeable can take
|
|
# advantage. The drawback is there is higher cpu load; however, we tend to
|
|
# be memory bound not cpu bound so enable KSM by default but allow people
|
|
# to opt out if the CPU time is more important to them.
|
|
ENABLE_KSM=$(trueorfalse True ENABLE_KSM)
|
|
ENABLE_KSMTUNED=$(trueorfalse True ENABLE_KSMTUNED)
|
|
function configure_ksm {
|
|
if [[ $ENABLE_KSMTUNED == "True" ]] ; then
|
|
install_package "ksmtuned"
|
|
fi
|
|
if [[ -f /sys/kernel/mm/ksm/run ]] ; then
|
|
echo $(bool_to_int ENABLE_KSM) | sudo tee /sys/kernel/mm/ksm/run
|
|
fi
|
|
}
|
|
|
|
# Compressed swap (ZSWAP)
|
|
#------------------------
|
|
|
|
# as noted in the kernel docs https://docs.kernel.org/admin-guide/mm/zswap.html
|
|
# Zswap is a lightweight compressed cache for swap pages.
|
|
# It takes pages that are in the process of being swapped out and attempts
|
|
# to compress them into a dynamically allocated RAM-based memory pool.
|
|
# zswap basically trades CPU cycles for potentially reduced swap I/O.
|
|
# This trade-off can also result in a significant performance improvement
|
|
# if reads from the compressed cache are faster than reads from a swap device.
|
|
|
|
ENABLE_ZSWAP=$(trueorfalse False ENABLE_ZSWAP)
|
|
# lz4 is very fast although it does not have the best compression
|
|
# zstd has much better compression but more latency
|
|
ZSWAP_COMPRESSOR=${ZSWAP_COMPRESSOR:="lz4"}
|
|
ZSWAP_ZPOOL=${ZSWAP_ZPOOL:="z3fold"}
|
|
function configure_zswap {
|
|
if [[ $ENABLE_ZSWAP == "True" ]] ; then
|
|
# Centos 9 stream seems to only support enabling but not run time
|
|
# tuning so dont try to choose better default on centos
|
|
if is_ubuntu; then
|
|
echo ${ZSWAP_COMPRESSOR} | sudo tee /sys/module/zswap/parameters/compressor
|
|
echo ${ZSWAP_ZPOOL} | sudo tee /sys/module/zswap/parameters/zpool
|
|
fi
|
|
echo 1 | sudo tee /sys/module/zswap/parameters/enabled
|
|
# print curent zswap kernel config
|
|
sudo grep -R . /sys/module/zswap/parameters || /bin/true
|
|
fi
|
|
}
|
|
|
|
ENABLE_SYSCTL_MEM_TUNING=$(trueorfalse False ENABLE_SYSCTL_MEM_TUNING)
|
|
function configure_sysctl_mem_parmaters {
|
|
if [[ $ENABLE_SYSCTL_MEM_TUNING == "True" ]] ; then
|
|
# defer write when memory is available
|
|
sudo sysctl -w vm.dirty_ratio=60
|
|
sudo sysctl -w vm.dirty_background_ratio=10
|
|
sudo sysctl -w vm.vfs_cache_pressure=50
|
|
# assume swap is compressed so on new kernels
|
|
# give it equal priority as page cache which is
|
|
# uncompressed. on kernels < 5.8 the max is 100
|
|
# not 200 so it will strongly prefer swapping.
|
|
sudo sysctl -w vm.swappiness=100
|
|
sudo grep -R . /proc/sys/vm/ || /bin/true
|
|
fi
|
|
}
|
|
|
|
function configure_host_mem {
|
|
configure_zswap
|
|
configure_ksm
|
|
configure_sysctl_mem_parmaters
|
|
}
|
|
|
|
ENABLE_SYSCTL_NET_TUNING=$(trueorfalse False ENABLE_SYSCTL_NET_TUNING)
|
|
function configure_sysctl_net_parmaters {
|
|
if [[ $ENABLE_SYSCTL_NET_TUNING == "True" ]] ; then
|
|
# detect dead TCP connections after 120 seconds
|
|
sudo sysctl -w net.ipv4.tcp_keepalive_time=60
|
|
sudo sysctl -w net.ipv4.tcp_keepalive_intvl=10
|
|
sudo sysctl -w net.ipv4.tcp_keepalive_probes=6
|
|
# reudce network latency for new connections
|
|
sudo sysctl -w net.ipv4.tcp_fastopen=3
|
|
# print tcp options
|
|
sudo grep -R . /proc/sys/net/ipv4/tcp* || /bin/true
|
|
# disable qos by default
|
|
sudo sysctl -w net.core.default_qdisc=pfifo_fast
|
|
fi
|
|
}
|
|
|
|
function configure_host_net {
|
|
configure_sysctl_net_parmaters
|
|
}
|
|
|
|
function tune_host {
|
|
configure_host_mem
|
|
configure_host_net
|
|
}
|