NX AIO does't use all system resources. what to do?


comparison between my VPS specs and the parameters that NX sees.

I’ve found that Nextcloud AIO isn’t aware of half of my system’s resources after I’ve already got it up and running for a while.

it’s aware of just 4 cores out of 8. 7.7GB memory out of 24GB RAM. space wise, it sees just 744GB whereas I have a 1.2TB drive. I included the PHP limits as well maybe that is the problem?

possibly it’s related to the Environment Vars of the Docker image. maybe the PHP should’ve been configured differently? so I was wondering if I can reconfigure it once AIO (and all it’s sub containers) are already installed? or do I have to reinstall everything and start over?

p.s.
if reinstalling is the best way to go, what happens if sometime in the future I upgrade my VPS and the specs change again? considering that by that time, I’d already have all my data stored on NX which I’d already set it up to my liking?

Hi, there is nothing inside AIO that limits resources. So I rather suspect a host config issue…

1 Like

Review the output of the following on your underlying host:

  • /proc/meminfo
  • /proc/cpuinfo

Nextcloud isn’t doing anything other than querying the OS for that information.

thanks. as @szaimen said, it seems to be an issue of the VPS provider.

I was more concerned about the upload limits under PHP. I wish to upload a 50GB zipped file and it keeps failing. then I found the 10GB limitation under the PHP section. what can I do about that?

@szaimen @jtr if either one of you knows what to do?
I found some docker environment vars that can be used but I already have NX AIO running and installed. do I have to reinstall it?

It looks like your VPS provider sold you a heavily oversubscribed VPS.
Docker takes what is has available.
If the resources are there on paper, but not there in reality, time to ask your VPS provider (or find a new one).

2 Likes

You can add or remvoce cores and memory. You can increase or decrease HDD capacity. Any of these can be done without the need for re installation. The only thing required is to make sure the .ini settings is following suite. However choosing -1 for these settings (for memory and limits), it does not matter. Just restart the PHP service and it is using the current resources. As others has pointed out, you then probably do not actually HAVE those resources when:

  • /proc/meminfo
  • /proc/cpuinfo

is executed by the PHP service at startup.

In regard to the HDD space. You might have 1.2 TB available - for total usage including OS. However when you set up Docker, you also creates a storage pool. This storage obviously cannot use all the HDD space as some are used by the VPS host machine itself. A storage pool is “isolated” and is seen by the containers as the only visible storage.

EDIT: There is the possibility to set hard limits to the docker engine for usage of host resources. This is impractical and make not much sense, as then you could just as use an old school VM.
Try to first set the memory using the Docker Compose file as mentioned above, to 20 GB (Do NOT set this to use all you have available. You can risk that it actually uses everything, and because the system is also using memory, the system will crash, or at least PHP will crash).

1 Like

Hi, see https://www.reddit.com/r/NextCloud/comments/1czkmqm/comment/l5iyipx/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

thanks for your detailed answer!
I’ll start at the end. I thought of the same thing but I use this VPS only for NX AIO and I’ve only stored just 30GB on it so far. so it’s a bit odd that so much storage is taken by the OS itself and other dependencies. again, I barely have anything else installed on this server as it was intended solely for NX.

to answer @LeoStehlik; I’ve already shot them a message. some user in a forum identified my VPS provider (Contabo) and apparently they’re notorious for over promising performance they cannot deliver? not sure, still yet trying to find out…

@Kerasit can you give me some more info on how to reconfigure the PHP file?
NX claims it’s using PHP vers 8.2.13. so I suppose I should find the php.ini file inside 8.2?
image
speaking of the following config file:
image

I wasn’t sure if I should update the php.ini file in the systems’ etc or if the docker container has its own version of php contained inside? and if so, which of the AIO containers should I access to modify the PHP upload limit?
image

someone also suggested the limitation is something to do with the Apache? is this right?

You should not mess with the settings directly inside the container.

https://github.com/nextcloud/all-in-one?tab=readme-ov-file#how-to-adjust-the-php-memory-limit-for-nextcloud

You should do this by adjusting the start command of the master container as stated above.
In the ini config files using G annotations is supported, whereas this link indicates that the docker run command only supports M. The way it work with docker, I am 99% certain just adding

 --env NEXTCLOUD_MEMORY_LIMIT=20G

will work just fine. But to be on the safe side of things, you have to convert the Gigabytes to Megabytes and add that instead.

That I cannot say for certain. But I have seen apache setups utilizing waaaaay more than that. And it would only be an issue for this particular situation, if the container was configured to use the apache php module instead of the fpm.

so to be sure, as it’s the first time I do that and my understanding of docker is limited. you would stop the NX containers in the AIO interface, and then rerun the docker in the terminal adding the env variable you mentioned?

would you mind typing an example to the docker run command you have in mind?
I have an issue with both the UPLOAD_MAX_SIZE and the MEMORY_LIMIT

what I’m confused about is the docs you linked above, refer to a fresh installation of the docker image as far as I understand. it’s even stated to include the env vars before nextcloud/all-in-one:latest which is what you would use when you run NX AIO when you run it the first time (as far as I understand I might be totally confused by this point)

Unless you’re uploading with a non-official client, chunking is used so that limit isn’t relevant. If it’s failing, it may be something else - such as your reverse proxy/etc. We’d need more info, but that wasn’t what you posted about. :slight_smile:

1 Like

yes, first you would do docker ps to see what’s running, then docker stop on the nextcloud-aio-mastercontainer, then run it again with the desired parameters (I added the env one in the default AIO docker run example):

--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--env NEXTCLOUD_MEMORY_LIMIT=20G \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

It can be a steep learning curve at first to navigate dockerized apps, but once you get used to it, it starts making sense.

1 Like

thank you!

when you run a docker container that’s already been configured (in my case, I’ve assigned different ports and placed the data_dir elsewhere --env NEXTCLOUD_DATADIR…)

do you have to include everything again? or can you omitt the variables you don’t want changed? (I’m happy with the new ports and the data directory’s location)

thanks and sure!
so just to make sure I understood. you would require a specific thread about the PHP max upload limit? and what other info would you require included in the post?

hi, I’ve created a thread for the relevant issue :slight_smile: