This shows you the differences between two versions of the page.
ep:labs:02:contents:tasks:ex2 [2019/10/06 15:22] radu.mantu |
ep:labs:02:contents:tasks:ex2 [2025/02/11 23:22] (current) cezar.craciunoiu [02. [10p] Feedback] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 02. [20p] Swap space ==== | + | ==== [10p] Feedback ==== |
- | + | ||
- | <note warning> | + | |
- | Before starting this task, call the assistant to show him your progress. If you manage to freeze your PC, it might prove tricky to do so afterwards. | + | |
- | </note> | + | |
- | + | ||
- | === [10p] Task A - Swap File === | + | |
- | + | ||
- | First, let us check what swap devices we have enabled. Check the //NAME// and //SIZE// columns of the following command: | + | |
- | <code> | + | |
- | $ swapon --show | + | |
- | </code> | + | |
- | + | ||
- | If you ever installed a Linux distro, you may remember creating a separate //swap partition//. This, however, is only one method of creating swap space. The other is by adding a //swap file//: | + | |
- | <code> | + | |
- | $ sudo swapoff -a | + | |
- | $ sudo dd if=/dev/zero of=/swapfile bs=1024 count=$((4 * 1024 * 1024)) | + | |
- | $ sudo chmod 600 /swapfile | + | |
- | $ sudo mkswap /swapfile | + | |
- | $ sudo swapon /swapfile | + | |
- | + | ||
- | $ swapon --show | + | |
- | </code> | + | |
- | + | ||
- | Just to clarify what we did: | + | |
- | * disabled all swap devices | + | |
- | * created a 4Gb zero-initialized file | + | |
- | * set the permission to the file so only //root// can edit it | + | |
- | * created a swap area from the file using **mkswap** (works on devices too) | + | |
- | * activated the swap area | + | |
- | + | ||
- | The new swap area is temporary and will not survive a reboot. To make it permanent, we need to register it in [[https://en.wikipedia.org/wiki/Fstab|/etc/fstab]] by adding a line such as this: | + | |
- | + | ||
- | <code> | + | |
- | /swapfile swap swap defaults 0 0 | + | |
- | </code> | + | |
- | + | ||
- | Now that we created a //swap file//, what are the advantages / disadvantages when compared to a //swap partition//? | + | |
- | * advantages: | + | |
- | * easier to manage | + | |
- | * similar performance | + | |
- | * disadvantage: | + | |
- | * can be affected by disk fragmentation (not the case for a partition) | + | |
- | + | ||
- | === [10p] Task B - Does it work? === | + | |
- | + | ||
- | In one terminal run **vmstat** and look at the //swpd// and //free// columns. | + | |
- | <code> | + | |
- | $ vmstat -w 1 | + | |
- | </code> | + | |
- | + | ||
- | In another terminal, open a python shell and allocate a bit more memory than the available RAM. Identify the moment when the newly created swap space is being used. | + | |
- | + | ||
- | Notice that once you close the python shell and the memory is freed, //swpd// still displays a non-zero value. Why? There simply isn't a reason to clear the data from the swap area. If you really want to clean up the used swap space, try the following: | + | |
- | <code> | + | |
- | $ vmstat | + | |
- | $ sudo swapoff -a && swapon -a | + | |
- | $ vmstat | + | |
- | </code> | + | |
- | + | ||
- | <solution -hidden> | + | |
- | Output here: | + | |
- | + | ||
- | {{ :ep:labs:ep2017_l2_ex05.png?550 |}} | + | |
- | </solution> | + | |
+ | Please take a minute to fill in the **[[https://forms.gle/NpSRnoEh9NLYowFr5 | feedback form]]** for this lab. |