#8404 Detect and fail if not enough memory is available for installation
Closed: fixed 3 years ago by rcritten. Opened 3 years ago by rcritten.

Issue

There are few hard rules for sizing of an IPA server but with a CA at least 2 GB of RAM is necessary to avoid constant swapping and chance of failure during installation and service restarts.

The solution needs to support bare metal, VM and container installations.

cgroup should be able to detect low memory situations for the container case but both v1 and v2 must be supported.

For bare metal and VM cases reading installed memory should be sufficient.

We already strongly discourage running other services on an IPA server so we will have to assume that any free memory will remain free and available for a new IPA installation.

The installer will check this available memory and fail with a description of the current condition and how much RAM is available. An installer override option will be necessary to allow a user to forge ahead.

The amount of memory required should be conditioned on the services being configured. This will also need to be considered when services are added post-installation (CA and DNS).


I wanted to get some baselines to see what the absolute minimum install RAM is so I created a F32 vagrant VM (libvirt) using the cloud image.

I was able to successfully install IPA + CA + DNS in 1280 of RAM, no swap. This was...unexpected.

Granted this is likely not at all useful but I was able to do some minor commands and generate a cert so the basics work.

So maybe 2GB is a reasonable minimum for VRAM + swap (free).

I haven't even looked at the restrictions in a container yet. It would be ideal to use the same API for both but it appears that psutil doesn't understand cgroups and will only report on host memory.

Metadata Update from @rcritten:
- Issue assigned to rcritten

3 years ago

I decided to ignore swap. If you are so RAM tight that you want to include swap then fine but you'll need to skip the memory check.

master:

  • cfad7af Require at least 1.6Gb of available RAM to install the server
  • fc271a5 ipatests: Add tests for checking available memory

ipa-4-8:

  • 1fd4440 Require at least 1.6Gb of available RAM to install the server
  • 9fa534c ipatests: Add tests for checking available memory

Metadata Update from @rcritten:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

3 years ago

master:

  • b47ddb0 Reduce the memory requirement from 1.6 to 1.2 GB

ipa-4-8:

  • 8255bc7 Reduce the memory requirement from 1.6 to 1.2 GB

Metadata Update from @abbra:
- Custom field changelog adjusted to FreeIPA server now requires at least 1.2 GiB RAM for installation to prevent performance degradation.

3 years ago

master:

  • 75c1b7e Provide more detailed logging around memory detection

ipa-4-9:

  • 6eff5b9 Provide more detailed logging around memory detection

This was implemented, but without the discussed override. I think I'll implement it, because it's causing me some grief on my dev VMs.

Nevermind, the override is implemented (--skip-mem-check) but was not adequately documented. I will file a PR to address that.

master:

  • cb0ce1b man: add --skip-mem-check to man pages
  • f8da5bf install: suggest --skip-mem-check when mem check fails

ipa-4-9:

  • 585cebb man: add --skip-mem-check to man pages
  • cbf2614 install: suggest --skip-mem-check when mem check fails

ipa-4-10:

  • e7bee5b man: add --skip-mem-check to man pages
  • cebfb87 install: suggest --skip-mem-check when mem check fails

Login to comment on this ticket.

Metadata