From 5f3937bcb4e9d3fbe4fabd9a9ec0d5df6643a903 Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Wed, 5 Mar 2014 14:33:39 -0800 Subject: [PATCH] Limit non tripleo nodepool nodes to 8GB of RAM Limit the non tripleo nodepool nodes to 8GB of RAM regardless of the flavor used. This allows us to use arbitrary flavors that may have the CPU resources that we require without risk that we become dependent on the vast amounts of RAM that typically come with more CPU. While we are at it set grub timeout to 0 saving 5 seconds of boottime for every server we boot. Change-Id: Ia38341239e0189c84a21a4f58dd7ca637490a27b --- .../nodepool/scripts/prepare_node_bare.sh | 3 +- .../nodepool/scripts/prepare_node_devstack.sh | 3 +- .../prepare_node_devstack_new_kernel.sh | 3 +- .../nodepool/scripts/prepare_node_py3k.sh | 2 ++ .../files/nodepool/scripts/restrict_memory.sh | 30 +++++++++++++++++++ 5 files changed, 35 insertions(+), 6 deletions(-) create mode 100755 modules/openstack_project/files/nodepool/scripts/restrict_memory.sh diff --git a/modules/openstack_project/files/nodepool/scripts/prepare_node_bare.sh b/modules/openstack_project/files/nodepool/scripts/prepare_node_bare.sh index f21c800d72..e0eef3c4bc 100755 --- a/modules/openstack_project/files/nodepool/scripts/prepare_node_bare.sh +++ b/modules/openstack_project/files/nodepool/scripts/prepare_node_bare.sh @@ -25,5 +25,4 @@ ALL_MYSQL_PRIVS='true' ./prepare_node.sh "$HOSTNAME" "$SUDO" "$BARE" "$PYTHON3" "$PYPY" "$ALL_MYSQL_PRIVS" -sync -sleep 5 +./restrict_memory.sh diff --git a/modules/openstack_project/files/nodepool/scripts/prepare_node_devstack.sh b/modules/openstack_project/files/nodepool/scripts/prepare_node_devstack.sh index ed4c94f683..3b890686c8 100755 --- a/modules/openstack_project/files/nodepool/scripts/prepare_node_devstack.sh +++ b/modules/openstack_project/files/nodepool/scripts/prepare_node_devstack.sh @@ -23,5 +23,4 @@ BARE='true' ./prepare_node.sh "$HOSTNAME" "$SUDO" "$BARE" sudo -u jenkins -i /opt/nodepool-scripts/prepare_devstack.sh $HOSTNAME -sync -sleep 5 +./restrict_memory.sh diff --git a/modules/openstack_project/files/nodepool/scripts/prepare_node_devstack_new_kernel.sh b/modules/openstack_project/files/nodepool/scripts/prepare_node_devstack_new_kernel.sh index 76418eaae6..0b6a485752 100755 --- a/modules/openstack_project/files/nodepool/scripts/prepare_node_devstack_new_kernel.sh +++ b/modules/openstack_project/files/nodepool/scripts/prepare_node_devstack_new_kernel.sh @@ -23,5 +23,4 @@ BARE='true' ./prepare_node.sh "$HOSTNAME" "$SUDO" "$BARE" sudo -u jenkins -i /opt/nodepool-scripts/prepare_devstack_new_kernel.sh $HOSTNAME -sync -sleep 5 +./restrict_memory.sh diff --git a/modules/openstack_project/files/nodepool/scripts/prepare_node_py3k.sh b/modules/openstack_project/files/nodepool/scripts/prepare_node_py3k.sh index 5b29c299ca..91946024a5 100755 --- a/modules/openstack_project/files/nodepool/scripts/prepare_node_py3k.sh +++ b/modules/openstack_project/files/nodepool/scripts/prepare_node_py3k.sh @@ -24,3 +24,5 @@ PYPY='true' ALL_MYSQL_PRIVS='true' ./prepare_node.sh "$HOSTNAME" "$SUDO" "$BARE" "$PYTHON3" "$PYPY" "$ALL_MYSQL_PRIVS" + +./restrict_memory.sh diff --git a/modules/openstack_project/files/nodepool/scripts/restrict_memory.sh b/modules/openstack_project/files/nodepool/scripts/restrict_memory.sh new file mode 100755 index 0000000000..0c3b369adf --- /dev/null +++ b/modules/openstack_project/files/nodepool/scripts/restrict_memory.sh @@ -0,0 +1,30 @@ +#!/bin/bash -xe +# Copyright (C) 2014 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# +# See the License for the specific language governing permissions and +# limitations under the License. + +# Limit all test slaves to 8GB of memory so that larger flavors with more +# cpu resources can be used without the risk of becoming dependent on more +# memory. +OS_FACT=$(facter operatingsystem) +if [ "$OS_FACT" == "Ubuntu" ] ; then + sudo sed -i -e 's/^GRUB_TIMEOUT=[0-9]\+/GRUB_TIMEOUT=0/' -e 's/#\?GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="mem=8G"/g' /etc/default/grub + sudo update-grub +elif [ "$OS_FACT" == "CentOS" ] || [ "$OS_FACT" == "Fedora" ] ; then + sudo sed -i -e 's/^timeout=[0-9]\+/timeout=0/' -e 's/\(^\s\+kernel.*\)/\1 mem=8G/' /boot/grub/grub.conf +fi + +sync +sleep 5