mirror of
https://github.com/nextcloud/nextcloudpi.git
synced 2026-01-09 14:42:01 -03:30
nc-limits: autolimits enhancements
This commit is contained in:
parent
9983b7cff9
commit
bbb25fa49c
@ -12,7 +12,7 @@ This code also generates the [NextCloudPi docker images](https://hub.docker.com/
|
||||
## Features
|
||||
|
||||
* Raspbian 9 stretch
|
||||
* Nextcloud 13.0.2
|
||||
* Nextcloud 13.0.4
|
||||
* Apache 2.4.25, with HTTP2 enabled
|
||||
* PHP 7.0 (double the speed of PHP5!)
|
||||
* MariaDB 10
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
## redis provisioning
|
||||
|
||||
CFG=/var/www/nextcloud/config/config.php
|
||||
CONFDIR=/usr/local/etc/ncp-config.d/
|
||||
REDISPASS="$( grep "^requirepass" /etc/redis/redis.conf | cut -f2 -d' ' )"
|
||||
|
||||
### IF redis password is the default one, generate a new one
|
||||
@ -46,33 +47,12 @@ EOF
|
||||
sed -i "s|'dbpassword' =>.*|'dbpassword' => '$DBPASSWD',|" "$CFG"
|
||||
}
|
||||
|
||||
## CPU core adjustment
|
||||
## nc.limits.sh (auto)adjustments: number of threads, memory limits...
|
||||
|
||||
CURRENT_THREADS=$( grep "^pm.max_children" /etc/php/7.0/fpm/pool.d/www.conf | awk '{ print $3 }' )
|
||||
|
||||
CFG=/usr/local/etc/ncp-config.d/nc-limits.sh
|
||||
PHPTHREADS=0
|
||||
[[ -f "$CFG" ]] && PHPTHREADS=$( grep "^PHPTHREADS_" "$CFG" | cut -d= -f2 )
|
||||
|
||||
[[ $PHPTHREADS -eq 0 ]] && PHPTHREADS=$( nproc )
|
||||
|
||||
[[ $PHPTHREADS -ne $CURRENT_THREADS ]] && {
|
||||
|
||||
echo "PHP threads set to $PHPTHREADS"
|
||||
|
||||
sed -i "s|pm.max_children =.*|pm.max_children = $PHPTHREADS|" /etc/php/7.0/fpm/pool.d/www.conf
|
||||
sed -i "s|pm.max_spare_servers =.*|pm.max_spare_servers = $PHPTHREADS|" /etc/php/7.0/fpm/pool.d/www.conf
|
||||
sed -i "s|pm.start_servers =.*|pm.start_servers = $PHPTHREADS|" /etc/php/7.0/fpm/pool.d/www.conf
|
||||
|
||||
# need to restart php
|
||||
bash -c " sleep 3
|
||||
systemctl stop php7.0-fpm
|
||||
systemctl stop mysqld
|
||||
sleep 0.5
|
||||
systemctl start php7.0-fpm
|
||||
systemctl start mysqld
|
||||
" &>/dev/null &
|
||||
}
|
||||
source /usr/local/etc/library.sh
|
||||
cd "$CONFDIR" &>/dev/null
|
||||
activate_script nc-limits.sh
|
||||
cd - &>/dev/null
|
||||
|
||||
## Check for interrupted upgrades and rollback
|
||||
BKP="$( ls -1t /var/www/nextcloud-bkp_*.tar.gz 2>/dev/null | head -1 )"
|
||||
@ -82,7 +62,6 @@ BKP="$( ls -1t /var/www/nextcloud-bkp_*.tar.gz 2>/dev/null | head -1 )"
|
||||
}
|
||||
|
||||
## Fix permissions on NCP folders. The main reason for this is to make devel docker container work
|
||||
CONFDIR="/usr/local/etc/ncp-config.d/"
|
||||
[[ -e $CONFDIR ]] && {
|
||||
chown -R root:www-data "$CONFDIR"/*
|
||||
chmod 660 "$CONFDIR"/*
|
||||
|
||||
@ -58,7 +58,7 @@ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
|
||||
activate_script nc-nextcloud.sh
|
||||
install_script ncp.sh
|
||||
activate_script nc-init.sh
|
||||
install_script post-inst.sh
|
||||
install_script post-inst.sh
|
||||
|
||||
# harden SSH further for Raspbian
|
||||
sed -i 's|^#PermitRootLogin .*|PermitRootLogin no|' /etc/ssh/sshd_config
|
||||
|
||||
@ -1,5 +1,11 @@
|
||||
|
||||
[v0.57.9](https://github.com/nextcloud/nextcloudpi/commit/b91d989) (2018-06-20) ncp-web: fix JS docker detection
|
||||
[v0.57.12](https://github.com/nextcloud/nextcloudpi/commit/b0203ab) (2018-06-21) nc-limits: autolimits enhancements
|
||||
|
||||
[v0.57.11](https://github.com/nextcloud/nextcloudpi/commit/038b260) (2018-06-20) letsencrypt: notify of renewals
|
||||
|
||||
[v0.57.10](https://github.com/nextcloud/nextcloudpi/commit/88843ab) (2018-06-20) ncp-web: fix JS docker detection
|
||||
|
||||
[v0.57.9](https://github.com/nextcloud/nextcloudpi/commit/ad64a4b) (2018-06-21) nc-format-USB: fix when ZRAM active
|
||||
|
||||
[v0.57.8 ](https://github.com/nextcloud/nextcloudpi/commit/e63523c) (2018-06-19) docker: adapt wizard
|
||||
|
||||
|
||||
@ -8,38 +8,63 @@
|
||||
# More at https://ownyourbits.com/2017/03/13/nextcloudpi-gets-nextcloudpi-config/
|
||||
#
|
||||
|
||||
MAXFILESIZE_=2G
|
||||
MEMORYLIMIT_=768M
|
||||
MAXFILESIZE_=10G
|
||||
MEMORYLIMIT_=0
|
||||
PHPTHREADS_=0
|
||||
REDISMEM_=3gb
|
||||
REDISMEM_=0
|
||||
|
||||
DESCRIPTION="Configure system limits for NextCloudPi"
|
||||
INFO="Set PHP threads to 0 in order to use all cores"
|
||||
INFO="Examples: 200M or 2G. Write 0 for autoconfig"
|
||||
|
||||
configure()
|
||||
{
|
||||
sed -i "s/post_max_size=.*/post_max_size=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini
|
||||
sed -i "s/upload_max_filesize=.*/upload_max_filesize=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini
|
||||
sed -i "s/memory_limit=.*/memory_limit=$MEMORYLIMIT_/" /var/www/nextcloud/.user.ini
|
||||
# Set auto memory limit to 75% of the total memory
|
||||
local TOTAL_MEM="$( free | sed -n 2p | awk '{ print $2 }' )"
|
||||
AUTOMEM=$(( TOTAL_MEM * 75 / 100 ))
|
||||
|
||||
# adjust max PHP processes so Apps don't overload the board (#146)
|
||||
# MAX FILESIZE
|
||||
local CONF=/var/www/nextcloud/.user.ini
|
||||
local CURRENT_FILE_SIZE="$( grep "^upload_max_filesize" "$CONF" | sed 's|.*=||' )"
|
||||
[[ "$MAXFILESIZE_" == "0" ]] && MAXFILESIZE_=10G
|
||||
|
||||
# MAX PHP MEMORY
|
||||
local CONF=/var/www/nextcloud/.user.ini
|
||||
local CURRENT_PHP_MEM="$( grep "^memory_limit" "$CONF" | sed 's|.*=||' )"
|
||||
[[ $MEMORYLIMIT_ -eq 0 ]] && MEMORYLIMIT_=$AUTOMEM && echo "Using ${AUTOMEM}B for PHP"
|
||||
sed -i "s/post_max_size=.*/post_max_size=$MAXFILESIZE_/" "$CONF"
|
||||
sed -i "s/upload_max_filesize=.*/upload_max_filesize=$MAXFILESIZE_/" "$CONF"
|
||||
sed -i "s/memory_limit=.*/memory_limit=$MEMORYLIMIT_/" "$CONF"
|
||||
|
||||
# MAX PHP THREADS
|
||||
local CONF=/etc/php/7.0/fpm/pool.d/www.conf
|
||||
local CURRENT_THREADS=$( grep "^pm.max_children" "$CONF" | awk '{ print $3 }' )
|
||||
local PHPTHREADS=0
|
||||
[[ $PHPTHREADS_ -eq 0 ]] && PHPTHREADS_=$( nproc ) && echo "Using $PHPTHREADS_ PHP threads"
|
||||
sed -i "s|pm.max_children =.*|pm.max_children = $PHPTHREADS_|" /etc/php/7.0/fpm/pool.d/www.conf
|
||||
sed -i "s|pm.max_spare_servers =.*|pm.max_spare_servers = $PHPTHREADS_|" /etc/php/7.0/fpm/pool.d/www.conf
|
||||
sed -i "s|pm.start_servers =.*|pm.start_servers = $PHPTHREADS_|" /etc/php/7.0/fpm/pool.d/www.conf
|
||||
sed -i "s|pm.max_children =.*|pm.max_children = $PHPTHREADS_|" "$CONF"
|
||||
sed -i "s|pm.max_spare_servers =.*|pm.max_spare_servers = $PHPTHREADS_|" "$CONF"
|
||||
sed -i "s|pm.start_servers =.*|pm.start_servers = $PHPTHREADS_|" "$CONF"
|
||||
|
||||
# need to restart php
|
||||
bash -c " sleep 3
|
||||
service php7.0-fpm stop
|
||||
service mysql stop
|
||||
sleep 0.5
|
||||
service php7.0-fpm start
|
||||
service mysql start
|
||||
" &>/dev/null &
|
||||
# RESTART PHP
|
||||
[[ $PHPTHREADS -ne $CURRENT_THREADS ]] || \
|
||||
[[ "$MEMORYLIMIT" != "$CURRENT_PHP_MEM" ]] || \
|
||||
[[ "$MAXFILESIZE_" != "$CURRENT_FILE_SIZE" ]] && {
|
||||
bash -c " sleep 3
|
||||
service php7.0-fpm stop
|
||||
service mysql stop
|
||||
sleep 0.5
|
||||
service php7.0-fpm start
|
||||
service mysql start
|
||||
" &>/dev/null &
|
||||
}
|
||||
|
||||
# redis max memory
|
||||
sed -i "s|maxmemory .*|maxmemory $REDISMEM_|" /etc/redis/redis.conf
|
||||
service redis restart
|
||||
local CONF=/etc/redis/redis.conf
|
||||
local CURRENT_REDIS_MEM=$( grep "^maxmemory" "$CONF" | awk '{ print $2 }' )
|
||||
[[ $REDISMEM_ -eq 0 ]] && REDISMEM_=$AUTOMEM && echo "Using ${AUTOMEM}B for Redis"
|
||||
[[ "$REDISMEM_" != "$CURRENT_REDIS_MEM" ]] && {
|
||||
sed -i "s|maxmemory .*|maxmemory $REDISMEM_|" "$CONF"
|
||||
service redis restart
|
||||
}
|
||||
}
|
||||
|
||||
install() { :; }
|
||||
|
||||
9
lamp.sh
9
lamp.sh
@ -31,7 +31,11 @@ install()
|
||||
|
||||
$APTINSTALL apt-utils cron
|
||||
$APTINSTALL apache2
|
||||
$APTINSTALL php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip php7.0-fileinfo php7.0-mcrypt php7.0-ldap
|
||||
$APTINSTALL php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache \
|
||||
php7.0-mbstring php7.0-xml php7.0-zip php7.0-fileinfo php7.0-ldap \
|
||||
php7.0-intl libmagickcore-6.q16-2-extra php7.0-imagick php-mcrypt
|
||||
|
||||
|
||||
mkdir -p /run/php
|
||||
|
||||
# Randomize mariaDB password
|
||||
@ -140,9 +144,6 @@ y
|
||||
y
|
||||
y
|
||||
EOF
|
||||
|
||||
# adjust max PHP processes so Apps don't overload the board (#146)
|
||||
sed -i 's|pm.max_children =.*|pm.max_children = 3|' /etc/php/7.0/fpm/pool.d/www.conf
|
||||
}
|
||||
|
||||
configure() { :; }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user