Why don't I have the memory or disk allowance that I expect?
Last updated: November 29th 2024
Introduction
We sometimes get asked the question on our support: Why don't I see the 10 gigabye of RAM available I paid for inside my machine?
Well, in short, this has to do with the kernel reserving some things reducing what you see returned from commands such as "free" but mostly from a conversion from GB to GiB/MiB. Let us explain ...
The kernel/system reserves some stuff, when it comes to memory (and disk)
For disk allowance it should be obvious that your Linux system will reserve some part of your raw disk allowance for /boot, firmware and efi and other bits and pieces.
Any remainder you have will be shown in the case of tools like df as MiB or GiB converted from your allowance which is set in GB or MB. This means that you will always see a bit less disk space as absolute numbers reported from such tools. It's just unit conversion.
As to memory; if you run a tool such as free you may see a rather low number compared to what you may expect. Here is an example:
root@v1:~# dmidecode -t 17 | grep Size: Size: 768 MB root@v1:~# free -m total used free shared buff/cache available Mem: 699 222 255 23 347 477 Swap: 0 0 0
This is just firmware and kernel taking a bit of reserved memory for various things, reducing the actual physical memory available in this example from 768 MiB to 699MiB. Notice how we write MiB here? That's because dmidecode is "lying" about its units. It's not actually displaying MB (which is a multiple of 1000) but MiB (which is multiples of 1024)
This also explains why you may see something like this reported by dmidecode on a VPS server with 10GB RAM allowance:
root@dakara:~$ incus exec v1 -- dmidecode -t 17 | grep Size: Size: 9536 MB
If the unit was in fact MB, this should show 10000 MB but it doesn't because dmidecode is actually showing MiB, where 10GB to MiB = 9536 MiB
We hope that clears up any confusion, otherwise please ask in our support and we will try and improve our explanation here best we can :) Thanks for reading!
Related articles
-
Optimizing Network Speed on Your Webdock KVM Server
A mini article with some kernel tweaks to improve network performance on your server
Last updated: September 6th 2024
-
How to configure Crontab on Linux
In this article we detail how Crontab works and all the available options for configuration along with correct syntax and examples.
Last updated: January 4th 2024
-
How to free up disk space on an Ubuntu Nginx or Apache Web Server
This article outlines useful commands you can run on your server in order to free up disk space.
Last updated: October 16th 2023
-
How to monitor webdock server resources using Prometheus, Grafana, Node Exporter and Prometheus Alert Manager
This guide includes the step by step procedure of installing different packages like Prometheus, Grafana, Node exporter and Alert Manager.
Last updated: December 7th 2022
-
How to Disable IPv6 on Your Webdock Server
The article explain how to disable IPv6 on your Webdock server, both temporarily and permanently.
Last updated: August 13th 2024
-
Automating Initial Server Configuration with Ansible
Read our new article: Learn how to automate your cloud server configuration using Ansible.
Last updated: July 19th 2023
-
Top Tools to Install on Your Ubuntu Web Server
A list of important tools that you can install on your production Ubuntu web server
Last updated: July 19th 2023
-
How To Benchmark Your Server with YABS
A guide to do benchmarking of your server's CPU, network performance, and such using YABS.
Last updated: April 1st 2024
-
Systemd Units - A Comprehensive Guide for Linux Admins
A detailed guide on systemd internals for Linux admins
Last updated: August 13th 2024
-
A Quick Guide to Managing Systemd Services
A short guide that helps you manage systemd services
Last updated: August 13th 2024
-
How to Benchmark PHP Performance on Your Webdock Server
Instructions for bechmarking PHP performance on your Webdock server
Last updated: August 29th 2024