Re: cloning the linxu kernel repo at a VPS with small RAM
- From
- Dragan Simic <dsimic@manjaro.org>
- Date
- Feb 8, 2024, 20:16 UTC
- Message-ID
- <6c4e309aa77e534cffdba9ae56032b99@manjaro.org>
- In-Reply-To
- <2f773980-70ec-4ad0-a49c-3ac12c294a39@gmx.de>
Hello Toralf,
On 2024-02-08 18:32, Toralf Förster wrote:
Show 18 quoted lines
> Situation: > > The command > git clone > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git > fails at a virtual server with about 2 GiB RAM under a recent Debian > bookworm with git 2.39.2. What works for me: > git clone --depth=1 > https://git.kernel.org/pub/scm/linux/kernel/git/stable > cd ./linux > git config gc.auto 0 > git config pack.threads 1 > git fetch --tags > as seen in [1]. > > Q: > I do wonder if Git could automatically try to deal with only 1.5 GiB > available RAM?
Here's an excerpt from my ~/.bashrc, which sets the things up on my Pinebook Pro laptop with an RK3399 SoC and 4 GB of RAM, which is also thermally constrained:
# Missing nproc(1) is handled properly REASONABLE_THREADS=$(nproc 2> /dev/null || echo 1) REASONABLE_THREADS=$((${REASONABLE_THREADS} / 2)) ((${REASONABLE_THREADS} == 0)) && REASONABLE_THREADS=1
export GIT_CONFIG_COUNT=3 export GIT_CONFIG_KEY_0='grep.threads' export GIT_CONFIG_VALUE_0=${REASONABLE_THREADS} export GIT_CONFIG_KEY_1='index.threads' export GIT_CONFIG_VALUE_1=${REASONABLE_THREADS} export GIT_CONFIG_KEY_2='pack.threads' export GIT_CONFIG_VALUE_2=${REASONABLE_THREADS}
export ZSTD_NBTHREADS=${REASONABLE_THREADS} unset REASONABLE_THREADS
Obviously, this does a bit more than configuring git only.
Perhaps modifying this to additionally take the amount of RAM into the calculation of REASONABLE_THREADS could be a solution for your use case?