Sometimes the server speed is somehow slow, so when I checked the status using top, ps, etc., it seemed that I was using swap.
Swap: 1.0G 278M 742M
I was wondering if it would be better to increase the memory, but the whole free command looked like this.
onodes@Balthazar:~$ free -h total used free shared buff/cache available Mem: 985M 309M 311M 33M 364M 495M Swap: 1.0G 278M 742M
As you can see from the available, 278MB of swap in occurred while the available amount of physical memory was sufficient.
Swap here is a function to move the data in the memory to a disk (HDD / SSD, etc.) when the physical memory is insufficient. In other words, the idea is that swap will not occur unless there is insufficient physical memory.
swappiness Swappiness is set as a background for swap to be used even though physical memory is free. swappiness is a parameter of the Linux kernel, which is used to change and adjust the frequency of swap processing. It is implemented and adopted in Linux with Linux kernel 2.6 or higher (I think it seems to be the case in the world ...).
onodes@Balthazar:~$ cat /proc/sys/vm/swappiness 60
If unadjusted, 60 should be included by default. This value can be adjusted from 0 to 100, and the larger the value, the easier it is to swap. Also, if you set it to 0, swap will not be used until the memory is exhausted.
|swappiness = 0||Do not swap until memory is full (depleted)|
|swappiness = 60||Default|
|swappiness = 100||Swap positively. Level that affects overall performance|
Looking only here, it seems that setting swappiness = 0 will improve performance by using memory hard, but if it is set to 0, OOM Killer will easily occur this time and process down will occur, so do not overdo it.
This time, let's relax a little and set swappiness = 10.
The OS is Ubuntu 18.04.
$ sudo vim /etc/sysctl.conf
Added at the bottom
vm.swappiness = 10
$ sudo sysctl -p vm.swappiness = 10
onodes@Balthazar:~$ free -h total used free shared buff/cache available Mem: 985M 384M 181M 56M 419M 396M Swap: 1.0G 276M 744M
The value of swap hasn't changed ... swap isn't released here. ** If the free space in real memory is larger than the capacity of swap used **, turn swap off, free it, and then turn it on again. If the real memory is low, stop various processes to make space in the real memory. If the memory is used effectively to that extent, I feel that the work itself of this article is unnecessary.
onodes@Balthazar:~$ free -h total used free shared buff/cache available Mem: 985M 578M 95M 34M 311M 224M Swap: 1.0G 0B 1.0G
It is 0B because it is just after releasing the swap. From here, let's follow up.