One place for hosting & domains

      Swap

      Cara Menambah Ruang Swap pada Ubuntu 20.04


      Pengantar

      Salah satu cara untuk menghindari kesalahan kehabisan memori dalam aplikasi adalah dengan menambahkan sejumlah ruang swap ke server Anda. Dalam panduan ini, kita akan membahas cara menambah suatu berkas swap ke server Ubuntu 20.04.

      Peringatan: Meskipun biasanya swap disarankan untuk sistem yang menggunakan hard drive berputar tradisional, harap diperhatikan bahwa melakukan swap pada SSD dapat menyebabkan masalah terkait degradasi perangkat keras seiring waktu. Karena itu, kami tidak menyarankan untuk mengaktifkan swap pada DigitalOcean atau penyedia lainnya yang menggunakan penyimpanan SSD.

      Apa itu Swap?

      Swap adalah bagian dari penyimpanan hard drive yang telah disisihkan pada sistem operasi untuk secara sementara menyimpan data yang tidak dapat lagi disimpan di RAM. Ini memungkinkan Anda untuk menambah jumlah informasi yang dapat disimpan oleh server Anda di dalam memori yang sedang bekerja, dengan beberapa peringatan. Ruang swap pada hard drive akan digunakan terutama saat tidak ada lagi ruang yang cukup di RAM untuk menyimpan data aplikasi yang sedang digunakan.

      Informasi yang ditulis ke diska akan lebih lambat secara signifikan dibandingkan informasi yang disimpan dalam RAM, tetapi sistem operasi akan lebih memilih untuk tetap menjalankan data aplikasi dalam memori dan menggunakan swap untuk data yang lebih tua. Secara garis besar, memiliki ruang swap sebagai pilihan alternatif saat RAM sistem Anda habis dapat menjadi jaring pengaman yang baik terhadap eksepsi kehabisan memori pada sistem dengan penyimpanan non-SSD.

      Langkah 1 – Memeriksa Sistem untuk Informasi Swap

      Sebelum memulai, kita dapat memeriksa apakah sistem sudah memiliki sebagian ruang swap yang tersedia. Dimungkinkan untuk memiliki beberapa berkas swap atau partisi swap, tetapi pada umumnya satu sudah cukup.

      Kita dapat melihat apakah sistem memiliki swap yang terkonfigurasi dengan mengetik:

      Jika Anda tidak mendapat keluaran apa pun, ini berarti sistem Anda tidak memiliki ruang swap yang tersedia saat ini.

      Anda dapat memverifikasi bahwa tidak ada swap yang aktif dengan menggunakan utilitas free:

      Output

      total used free shared buff/cache available Mem: 981Mi 122Mi 647Mi 0.0Ki 211Mi 714Mi Swap: 0B 0B 0B

      Seperti yang Anda lihat di baris Swap pada keluaran, tidak ada swap yang aktif pada sistem.

      Langkah 2 – Memeriksa Ruang Tersedia pada Partisi Hard Drive

      Sebelum menciptakan berkas swap, kita akan memeriksa penggunaan diska saat ini untuk memastikan kita memiliki cukup ruang. Lakukan ini dengan mengetik:

      Output

      Filesystem Size Used Avail Use% Mounted on udev 474M 0 474M 0% /dev tmpfs 99M 932K 98M 1% /run /dev/vda1 25G 1.4G 23G 7% / tmpfs 491M 0 491M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 491M 0 491M 0% /sys/fs/cgroup /dev/vda15 105M 3.9M 101M 4% /boot/efi /dev/loop0 55M 55M 0 100% /snap/core18/1705 /dev/loop1 69M 69M 0 100% /snap/lxd/14804 /dev/loop2 28M 28M 0 100% /snap/snapd/7264 tmpfs 99M 0 99M 0% /run/user/1000

      Perangkat dengan / di dalam kolom Mounted on adalah diska kita dalam kasus ini. Kita memiliki banyak ruang yang tersedia dalam contoh ini (hanya digunakan 1,4 G). Penggunaan Anda mungkin akan berbeda.

      Meskipun ada banyak pendapat tentang ukuran ruang swap yang sesuai, hal itu benar-benar bergantung pada preferensi pribadi dan persyaratan aplikasi Anda. Secara umum, jumlah yang sama atau dua kali dari jumlah RAM pada sistem Anda adalah titik awal yang baik. Patokan yang baik lainnya adalah swap apa pun di atas 4 G mungkin tidak diperlukan jika Anda hanya menggunakannya sebagai pilihan alternatif RAM.

      Langkah 3 – Menciptakan Berkas Swap

      Kini setelah kita mengetahui ruang hard drive yang tersedia, kita dapat menciptakan berkas swap di sistem kita. Kita akan mengalokasikan berkas dengan ukuran yang diinginkan yang bernama swapfile di direktori root (/) kita.

      Cara terbaik untuk menciptakan berkas swap adalah dengan program fallocate. Perintah ini seketika menciptakan berkas dengan ukuran yang ditentukan.

      Karena server dalam contoh kita memiliki 1 G RAM, kita akan menciptakan berkas 1 G dalam panduan ini. Sesuaikan ini untuk memenuhi kebutuhan server Anda:

      • sudo fallocate -l 1G /swapfile

      Kita dapat memverifikasi bahwa jumlah ruang yang benar telah disiapkan dengan mengetik:

      • -rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile

      Berkas telah dibuat dengan menyisihkan jumlah ruang yang benar.

      Langkah 4 – Mengaktifkan Berkas Swap

      Karena sudah memiliki berkas dengan ukuran yang benar, kita perlu mengubahnya menjadi ruang swap yang sesungguhnya.

      Pertama-tama, kita perlu untuk mengunci izin berkas sehingga hanya pengguna dengan privilese root yang dapat membaca konten. Ini mencegah pengguna normal untuk dapat mengakses berkas, yang akan memiliki implikasi keamanan yang signifikan.

      Buat berkas hanya dapat diakses oleh root dengan mengetik:

      Lakukan verifikasi perubahan izin dengan mengetik:

      Output

      -rw------- 1 root root 1.0G Apr 25 11:14 /swapfile

      Seperti yang terlihat, hanya pengguna root yang memiliki bendera baca dan tulis yang diaktifkan.

      Sekarang kita dapat menandai berkas sebagai ruang swap dengan mengetik:

      Output

      Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

      Setelah menandai berkas, kita dapat mengaktifkan berkas swap, yang mengizinkan sistem kita untuk mulai menggunakannya:

      Lakukan verifikasi bahwa swap tersedia dengan mengetik:

      Output

      NAME TYPE SIZE USED PRIO /swapfile file 1024M 0B -2

      Kita dapat memeriksa keluaran utilitas free lagi untuk menguatkan temuan kita:

      Output

      total used free shared buff/cache available Mem: 981Mi 123Mi 644Mi 0.0Ki 213Mi 714Mi Swap: 1.0Gi 0B 1.0Gi

      Swap telah berhasil disiapkan dan sistem operasi kita akan mulai menggunakannya ketika diperlukan.

      Langkah 5 – Membuat Berkas Swap Jadi Permanen

      Perubahan terbaru kita telah mengaktifkan berkas swap untuk sesi ini. Namun, jika kita melakukan boot ulang, server tidak akan mempertahankan pengaturan swap secara otomatis. Kita dapat mengubah ini dengan menambahkan berkas swap ke berkas /etc/fstab.

      Cadangkan berkas /etc/fstab seandainya ada kesalahan:

      • sudo cp /etc/fstab /etc/fstab.bak

      Tambahkan informasi berkas swap di akhir berkas /etc/fstab dengan mengetik:

      • echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

      Selanjutnya, kita akan meninjau beberapa pengaturan yang dapat kita perbarui untuk menyetel ruang swap.

      Langkah 6 – Menyetel Pengaturan Swap Anda

      Ada beberapa opsi yang dapat Anda atur agar berdampak pada kinerja sistem Anda saat berurusan dengan swap.

      Menyesuaikan Properti Swappiness

      Parameter swappiness mengonfigurasi seberapa sering sistem Anda melakukan swap data dari RAM ke ruang swap. Ini adalah nilai antara 0 dan 100 yang mewakili persentase.

      Dengan nilai yang dekat dengan nol, kernel tidak akan melakukan swap data ke diska kecuali benar-benar diperlukan. Ingat, interaksi dengan berkas swap adalah hal “mahal” yang dalam hal ini berarti memakan waktu lebih lama daripada interaksi dengan RAM dan dapat menyebabkan pengurangan kinerja yang signifikan. Memberi tahu sistem untuk tidak terlalu banyak mengandalkan swap secara umum akan membuat sistem Anda lebih cepat.

      Nilai yang lebih dekat dengan 100 akan mencoba menaruh lebih banyak data ke dalam swap sebagai upaya untuk menjaga lebih banyak ruang RAM yang lowong. Tergantung profil memori aplikasi atau kegunaan server, ini mungkin pilihan yang lebih baik dalam beberapa kasus.

      Kita dapat melihat nilai swappiness saat ini dengan mengetik:

      • cat /proc/sys/vm/swappiness

      Output

      60

      Untuk Desktop, pengaturan swappiness 60 bukanlah nilai yang buruk. Untuk server, Anda mungkin ingin memindahkannya lebih dekat dengan 0.

      Kita dapat mengatur swappiness ke nilai yang berbeda dengan menggunakan perintah sysctl.

      Misalnya, untuk mengatur swappiness menjadi 10, kita dapat mengetik:

      • sudo sysctl vm.swappiness=10

      Output

      vm.swappiness = 10

      Pengaturan ini akan terus ada hingga boot ulang selanjutnya. Kita dapat mengatur nilai ini secara otomatis saat memulai ulang dengan menambahkan baris ke berkas /etc/sysctl.conf:

      • sudo nano /etc/sysctl.conf

      Di bagian bawah, Anda dapat menambahkan:

      /etc/sysctl.conf

      vm.swappiness=10
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Menyesuaikan Pengaturan Cache Pressure

      Nilai terkait lainnya yang mungkin Anda ingin modifikasi adalah vfs_cache_pressure. Pengaturan ini mengonfigurasi seberapa banyak sistem akan memilih untuk melakukan cache pada inode dan informasi dentry dibandingkan data lainnya.

      Pada dasarnya, ini adalah data akses tentang sistem berkas. Secara umum, ini sangat sulit untuk dicari dan sangat sering diminta, jadi sebaiknya sistem Anda melakukan cache. Anda dapat melihat nilai saat ini dengan melakukan kueri sistem berkas proc lagi:

      • cat /proc/sys/vm/vfs_cache_pressure

      Output

      100

      Dalam konfigurasi saat ini, sistem kita menghapus informasi inode dari cache dengan terlalu cepat. Kita dapat mengatur ini ke pengaturan yang lebih konservatif seperti 50 dengan mengetik:

      • sudo sysctl vm.vfs_cache_pressure=50

      Output

      vm.vfs_cache_pressure = 50

      Sekali lagi, ini hanya valid untuk sesi kita saat ini. Kita dapat mengubah hal itu dengan menambahkannya ke berkas konfigurasi seperti yang kita lakukan dengan pengaturan swappiness:

      • sudo nano /etc/sysctl.conf

      Di bagian bawah, tambahkan baris yang menentukan nilai baru Anda:

      /etc/sysctl.conf

      vm.vfs_cache_pressure=50
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Kesimpulan

      Mengikuti langkah-langkah dalam panduan ini akan memberi Anda sebagian ruang bernapas dalam kasus terkait eksepsi kehabisan memori. Ruang swap dapat menjadi sangat berguna untuk menghindari sebagian masalah umum ini.

      Jika Anda menjumpai pesan kesalahan OOM (kehabisan memori), atau jika Anda menemukan bahwa sistem tidak dapat menggunakan aplikasi yang Anda perlukan, solusi terbaiknya adalah dengan mengoptimalkan konfigurasi aplikasi atau meningkatkan server.



      Source link

      Comment ajouter Swap sur Ubuntu 20.04


      Introduction

      Une façon de se prémunir contre les erreurs de mémoire dans les applications est d’ajouter un espace swap à votre serveur. Dans ce guide, nous verrons comment ajouter un fichier swap à un serveur Ubuntu 20.04.

      Warning : Bien que le swap soit généralement recommandé pour les systèmes utilisant des disques durs tournants traditionnels, le fait de placer le swap sur des SSD peut entraîner des problèmes de dégradation du matériel au fil du temps.   Pour cette raison, nous ne recommandons pas de permettre le swap sur DigitalOcean ou tout autre fournisseur qui utilise le stockage SSD.

      Qu’est-ce que le swap?

      Le swap est une partie du stockage du disque dur qui a été mise de côté pour que le système d’exploitation puisse stocker temporairement les données qu’il ne peut plus conserver en mémoire vive.   Cela vous permet d’augmenter la quantité d’informations que votre serveur peut conserver dans sa mémoire de travail, avec quelques réserves. L’espace swap sur le disque dur sera utilisé principalement lorsque l’espace en mémoire vive ne sera plus suffisant pour contenir les données des applications en cours d’utilisation.

      Les informations écrites sur le disque seront nettement plus lentes que celles conservées dans la mémoire vive, mais le système d’exploitation préférera conserver les données des applications en mémoire et utiliser le swap pour les données plus anciennes. Dans l’ensemble, le fait de disposer d’un espace swap comme solution de repli lorsque la mémoire vive de votre système est épuisée peut constituer un bon filet de sécurité contre les exceptions de sortie de mémoire sur les systèmes disposant d’un stockage non-SSD.

      Étape 1 – Vérification du système d’information sur les swaps

      Avant de commencer, nous pouvons vérifier si le système dispose déjà d’un espace swap disponible. Il est possible d’avoir plusieurs fichiers swap ou partitions swap, mais en général, un seul devrait suffire.

      Nous pouvons voir si le système dispose d’un échange configuré en tapant :

      Si vous ne récupérez pas les résultats, cela signifie que votre système ne dispose pas actuellement d’espace swap disponible.

      Vous pouvez vérifier qu’il n’y a pas de swap actif en utilisant l’utilitaire free :

      Output

      total used free shared buff/cache available Mem: 981Mi 122Mi 647Mi 0.0Ki 211Mi 714Mi Swap: 0B 0B 0B

      Comme vous pouvez le voir dans la ligne Swap du résultat, aucun swap n’est actif sur le système.

      Étape 2 – Vérifier de l’espace disponible sur la partition du disque dur

      Avant de créer notre fichier swap, nous vérifierons notre utilisation actuelle du disque pour nous assurer que nous avons suffisamment d’espace. Faites ceci en entrant :

      Output

      Filesystem Size Used Avail Use% Mounted on udev 474M 0 474M 0% /dev tmpfs 99M 932K 98M 1% /run /dev/vda1 25G 1.4G 23G 7% / tmpfs 491M 0 491M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 491M 0 491M 0% /sys/fs/cgroup /dev/vda15 105M 3.9M 101M 4% /boot/efi /dev/loop0 55M 55M 0 100% /snap/core18/1705 /dev/loop1 69M 69M 0 100% /snap/lxd/14804 /dev/loop2 28M 28M 0 100% /snap/snapd/7264 tmpfs 99M 0 99M 0% /run/user/1000

      L’appareil avec / dans la colonne Mounted on est ici notre disque. Nous avons beaucoup d’espace disponible dans cet exemple (seulement 1,4 G utilisé). Votre usage sera probablement différent.

      Bien qu’il existe de nombreuses opinions sur la taille appropriée d’un espace swap, cela dépend vraiment de vos préférences personnelles et des exigences de votre demande. En général, une quantité égale ou double de la quantité de mémoire vive de votre système est un bon point de départ. Une autre bonne règle de base est que tout ce qui dépasse 4G de swap est probablement inutile si vous l’utilisez simplement comme solution de repli de la RAM.

      Étape 3 – Créer d’un fichier swap

      Maintenant que nous connaissons l’espace disponible sur notre disque dur, nous pouvons créer un fichier swap sur notre système de fichiers. Nous allons attribuer un fichier de la taille que nous voulons appelé swapfile dans notre répertoire root (/).

      Le meilleur moyen de créer un fichier swap est le programme fallocate. Cette commande crée instantanément un fichier de la taille spécifiée.

      Comme le serveur de notre exemple a 1G de mémoire vive, nous allons créer un fichier de 1G dans ce guide. Ajustez cela pour répondre aux besoins de votre propre serveur :

      • sudo fallocate -l 1G /swapfile

      Nous pouvons vérifier que la quantité d’espace correcte a été réservée en tapant :

      • -rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile

      Notre dossier a été créé avec la bonne quantité d’espace réservé.

      Étape 4 – Activer le fichier Swap

      Maintenant que nous disposons d’un fichier de la bonne taille, nous devons le transformer en espace swap.

      Tout d’abord, nous devons verrouiller les permissions du fichier afin que seuls les utilisateurs ayant les privilèges root puissent en lire le contenu. Cela empêche les utilisateurs normaux de pouvoir accéder au fichier, ce qui aurait des implications importantes en matière de sécurité.

      Rendre le fichier accessible uniquement au root en tapant : 

      Vérifiez la modification des autorisations en tapant :

      Output

      -rw------- 1 root root 1.0G Apr 25 11:14 /swapfile

      Comme vous pouvez le voir, seul le root user a les drapeaux de lecture et d’écriture activés.

      Nous pouvons maintenant marquer le fichier comme espace swap en tapant :

      Output

      Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

      Après avoir marqué le fichier, nous pouvons activer le fichier swap, ce qui permet à notre système de commencer à l’utiliser :

      Vérifiez que le swap est disponible en tapant :

      Output

      NAME TYPE SIZE USED PRIO /swapfile file 1024M 0B -2

      Nous pouvons vérifier à nouveau les résultats de l’utilitaire free pour corroborer nos conclusions :

      Output

      total used free shared buff/cache available Mem: 981Mi 123Mi 644Mi 0.0Ki 213Mi 714Mi Swap: 1.0Gi 0B 1.0Gi

      Notre swap a été mis en place avec succès et notre système d’exploitation commencera à l’utiliser si nécessaire.

      Étape 5 – Rendre le fichier swap permanent

      Nos récents changements ont permis d’activer le fichier swap pour la session en cours. Cependant, si nous redémarrons, le serveur ne conservera pas automatiquement les paramètres du swap. Nous pouvons changer cela en ajoutant le fichier swap à notre fichier /etc/fstab.

      Sauvegardez le fichier /etc/fstab au cas où quelque chose n’irait pas :

      • sudo cp /etc/fstab /etc/fstab.bak

      Ajoutez les informations du fichier swap à la fin de votre fichier /etc/fstab en tapant : 

      • echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

      Ensuite, nous allons revoir certains paramètres que nous pouvons mettre à jour pour régler notre espace swap.

      Étape 6 – Réglage de vos paramètres swap

      Il existe quelques options que vous pouvez configurer et qui auront un impact sur les performances de votre système lors de la gestion des swaps.

      Ajuster la propriété du swappiness

      Le paramètre swappiness permet de configurer la fréquence à laquelle votre système échange des données de la mémoire vive vers l’espace swap. Il s’agit d’une valeur comprise entre 0 et 100 qui représente un pourcentage.

      Avec des valeurs proches de zéro, le noyau n’échangera pas de données sur le disque à moins que cela ne soit absolument nécessaire. N’oubliez pas que les interactions avec le fichier swap sont « lourdes » dans la mesure où elles prennent beaucoup plus de temps que les interactions avec la mémoire vive et qu’elles peuvent entraîner une réduction significative des performances. Le fait de dire au système de ne pas trop dépendre du swap rendra généralement votre système plus rapide.

      Les valeurs plus proches de 100 tenteront de mettre plus de données dans le swap afin de garder plus d’espace RAM libre. En fonction du profil de mémoire de vos applications ou de l’utilisation que vous faites de votre serveur, cela peut être préférable dans certains cas.

      On peut voir la valeur actuelle du swap en tapant :

      • cat /proc/sys/vm/swappiness

      Output

      60

      Pour un ordinateur de bureau, un paramètre de swappiness de 60 n’est pas une mauvaise valeur. Pour un serveur, vous voudrez peut-être le rapprocher de 0.

      Nous pouvons régler le swappiness à une valeur différente en utilisant la commande sysctl.

      Par exemple, pour régler le swappiness sur 10, nous pourrions taper :

      • sudo sysctl vm.swappiness=10

      Output

      vm.swappiness = 10

      Ce réglage persistera jusqu’au prochain redémarrage. Nous pouvons fixer cette valeur automatiquement au redémarrage en ajoutant la ligne à notrefichier /etc/sysctl.conf : 

      • sudo nano /etc/sysctl.conf

      En bas, vous pouvez ajouter :

      /etc/sysctl.conf

      vm.swappiness=10
      

      Enregistrez et fermez le fichier lorsque vous avez terminé.

      Ajuster le réglage de la pression du cache

      Une autre valeur connexe que vous pourriez vouloir modifier est la vfs_cache_pressure.   Ce paramètre configure la quantité que le système choisira pour mettre en cache les informations d’inode et de dentry sur d’autres données.

      Fondamentalement, il s’agit de données d’accès au système de fichiers. Il est généralement très difficile à consulter et très souvent demandé, c’est donc une excellente chose pour votre système de mettre en cache. Vous pouvez voir la valeur actuelle en interrogeant à nouveau le système de fichiers proc :

      • cat /proc/sys/vm/vfs_cache_pressure

      Output

      100

      Dans sa configuration actuelle, notre système supprime trop rapidement les informations d’inode du cache. Nous pouvons fixer ce chiffre à un niveau plus conservateur, comme 50, en tapant :

      • sudo sysctl vm.vfs_cache_pressure=50

      Output

      vm.vfs_cache_pressure = 50

      Encore une fois, ceci n’est valable que pour notre session actuelle. Nous pouvons changer cela en l’ajoutant à notre fichier de configuration comme nous l’avons fait avec notre réglage du swappiness :

      • sudo nano /etc/sysctl.conf

      En bas, ajoutez la ligne qui spécifie votre nouvelle valeur :

      /etc/sysctl.conf

      vm.vfs_cache_pressure=50
      

      Enregistrez et fermez le fichier lorsque vous avez terminé.

      Conclusion

      En suivant les étapes décrites dans ce guide, vous aurez une certaine marge de manœuvre dans les cas qui, autrement, entraîneraient des exceptions hors mémoire. L’espace de swap peut être incroyablement utile pour éviter certains de ces problèmes courants.

      Si vous rencontrez des erreurs OOM (out of memory), ou si vous constatez que votre système est incapable d’utiliser les applications dont vous avez besoin, la meilleure solution est d’optimiser vos configurations d’applications ou de mettre à niveau votre serveur.



      Source link

      Como adicionar espaço de swap no Ubuntu 20.04


      Introdução

      Um das maneiras de se proteger contra erros de memória insuficiente em aplicativos é através da adição de um espaço de swap ao seu servidor. Neste guia, falaremos sobre como adicionar um arquivo swap a um servidor Ubuntu 20.04.

      Aviso: embora o swap seja geralmente recomendado para sistemas que utilizam discos rígidos tradicionais, o uso do swap em SSDs pode causar problemas de degradação de hardware ao longo do tempo. Por este motivo, não recomendamos a habilitação do swap na DigitalOcean ou em qualquer outro provedor que utilize armazenamento SSD.

      O que é o Swap?

      O Swap é uma parcela do armazenamento do disco rígido que foi reservada para o sistema operacional com o objetivo de armazenar temporariamente dados que ele não consegue mais reter na RAM. Isso permite que você aumente a quantidade de informações que seu servidor consegue manter em sua memória de trabalho, com algumas advertências. O espaço de swap no disco rígido será usado principalmente quando já não houver espaço suficiente em RAM para manter os dados do aplicativo em uso.

      As informações gravadas no disco ficarão significativamente mais lentas do que as informações mantidas em RAM, mas o sistema operacional preferirá manter os dados do aplicativo em memória e usar o swap para os dados mais antigos. De maneira geral, ter espaço de swap como uma alternativa para quando a RAM do seu sistema estiver esgotada pode ser uma boa estratégia de segurança contra exceções de memória insuficiente nos sistemas com armazenamento disponível que não seja SSD.

      Passo 1 – Verificando o Sistema em Relação às Informações de Swap (troca)

      Antes de começarmos, podemos verificar se o sistema já tem algum espaço de swap (troca) disponível. É possível ter vários arquivos de swap ou partições de swap, mas geralmente um deve ser o suficiente.

      Podemos descobrir se o sistema tem algum swap configurado digitando:

      Se você não receber nenhum resultado, isso significa que seu sistema não tem espaço de swap disponível atualmente.

      Você pode verificar se não existe um swap ativo usando o utilitário free:

      Output

      total used free shared buff/cache available Mem: 981Mi 122Mi 647Mi 0.0Ki 211Mi 714Mi Swap: 0B 0B 0B

      Como você pode ver na linha Swap do resultado, nenhum swap está ativo no sistema.

      Passo 2 – Verificando o Espaço Disponível na Partição do Disco Rígido

      Antes de criarmos nosso arquivo de swap, verificaremos o uso atual do disco para garantir que temos espaço suficiente. Faça isso digitando:

      Output

      Filesystem Size Used Avail Use% Mounted on udev 474M 0 474M 0% /dev tmpfs 99M 932K 98M 1% /run /dev/vda1 25G 1.4G 23G 7% / tmpfs 491M 0 491M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 491M 0 491M 0% /sys/fs/cgroup /dev/vda15 105M 3.9M 101M 4% /boot/efi /dev/loop0 55M 55M 0 100% /snap/core18/1705 /dev/loop1 69M 69M 0 100% /snap/lxd/14804 /dev/loop2 28M 28M 0 100% /snap/snapd/7264 tmpfs 99M 0 99M 0% /run/user/1000

      O dispositivo com / na coluna Mounted on é o nosso disco neste caso. Temos bastante espaço disponível neste exemplo (apenas 1,4 GB usado). Seu uso provavelmente será diferente.

      Apesar da divergência de opiniões quanto ao tamanho adequado de um espaço de swap, isso realmente dependerá de suas preferências pessoais e das exigências da sua aplicação. Geralmente, um espaço igual ou duas vezes o tamanho do espaço da RAM no seu sistema é um bom ponto de partida. Outra boa regra de ouro é que qualquer coisa acima de 4 GB de swap é provavelmente desnecessária se você somente estiver usando-o como uma alternativa para a RAM.

      Passo 3 – Criando um Arquivo de Swap

      Agora que sabemos qual é o espaço disponível em nosso disco rígido, podemos criar um arquivo de swap no nosso sistema de arquivos. Alocaremos um arquivo do tamanho que queremos que o swap tenha chamado de swapfile em nosso diretório raiz (/).

      A melhor maneira de criar um arquivo de swap é com o programa fallocate. Este comando cria instantaneamente um arquivo do tamanho especificado.

      Uma vez que o servidor no nosso exemplo tem 1 GB de RAM, criaremos um arquivo de 1 GB neste guia. Ajuste isso para atender às necessidades do seu próprio servidor:

      • sudo fallocate -l 1G /swapfile

      Podemos verificar se a quantidade correta de espaço foi reservada digitando:

      • -rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile

      Nosso arquivo foi criado com a quantidade correta do espaço reservado.

      Passo 4 – Habilitando o Arquivo de Swap

      Agora que temos um arquivo do tamanho correto disponível, precisamos realmente transformar isso em espaço de swap.

      Primeiro, precisamos bloquear as permissões do arquivo para que apenas os usuários com privilégios root possam ler o conteúdo. Isso impede que os usuários normais possam acessar o arquivo, o que teria implicações de segurança significativas.

      Torne o arquivo acessível somente para root digitando:

      Verifique a alteração de permissões digitando:

      Output

      -rw------- 1 root root 1.0G Apr 25 11:14 /swapfile

      Como você pode ver, apenas o usuário root tem os sinalizadores de leitura e gravação habilitados.

      Podemos agora marcar o arquivo como espaço de swap digitando:

      Output

      Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

      Após marcar o arquivo, podemos habilitar o arquivo de swap, permitindo que nosso sistema comece a utilizá-lo:

      Verifique se o swap está disponível digitando:

      Output

      NAME TYPE SIZE USED PRIO /swapfile file 1024M 0B -2

      Podemos verificar a saída do utilitário free novamente para corroborar nossos resultados:

      Output

      total used free shared buff/cache available Mem: 981Mi 123Mi 644Mi 0.0Ki 213Mi 714Mi Swap: 1.0Gi 0B 1.0Gi

      Nosso swap foi configurado com sucesso e nosso sistema operacional começará a usá-lo conforme necessário.

      Passo 5 – Tornando o Arquivo de Swap Permanente

      Nossas alterações recentes habilitaram o arquivo de swap para a sessão atual. No entanto, se reiniciarmos, o servidor não manterá as configurações de swap automaticamente. Podemos alterar isso adicionando o arquivo de swap ao nosso arquivo /etc/fstab.

      Faça um backup do arquivo /etc/fstab para o caso de algo dar errado:

      • sudo cp /etc/fstab /etc/fstab.bak

      Adicione a informação do arquivo de swap no final do seu arquivo /etc/fstab digitando:

      • echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

      Em seguida, avaliaremos algumas configurações que podemos atualizar para ajustar nosso espaço de swap.

      Passo 6 – Ajustando as Configurações de Swap

      Há algumas opções que você pode configurar que terão um impacto no desempenho do seu sistema quando estiver lidando com o swap.

      Ajustando a propriedade Swappiness

      O parâmetro swappiness configura a frequência com que o seu sistema transfere dados da RAM para o espaço de swap. Esse é um valor entre 0 e 100 que representa uma porcentagem.

      Com valores próximos de zero, o kernel não irá transferir dados para o disco a menos que seja absolutamente necessário. Lembre-se, as interações com o arquivo de swap são “dispendiosas”, no sentido de que demoram mais que as interações com a RAM e podem causar uma redução significativa no desempenho. Dizer ao sistema para não depender tanto do swap irá geralmente tornar o seu sistema mais rápido.

      Valores que estão mais próximos de 100 irão tentar colocar mais dados no swap em um esforço para manter mais espaço da RAM livre. Dependendo do perfil de memória de seus aplicativos ou do motivo pelo qual você está usando o seu servidor, isso pode ser melhor em alguns casos.

      Podemos ver o valor atual do parâmetro swappiness digitando:

      • cat /proc/sys/vm/swappiness

      Output

      60

      Para um desktop, um valor de swappiness de 60 não é um valor ruim. Para um servidor, você pode deixá-lo mais próximo de 0.

      Podemos definir o parâmetro swappiness para um valor diferente usando o comando sysctl.

      Por exemplo, para definir o valor do parâmetro swappiness em 10, poderíamos digitar:

      • sudo sysctl vm.swappiness=10

      Output

      vm.swappiness = 10

      Este valor persistirá até a próxima reinicialização. Podemos definir este valor automaticamente na reinicialização, adicionando a linha no nosso arquivo /etc/sysctl.conf:

      • sudo nano /etc/sysctl.conf

      No final, você pode adicionar:

      /etc/sysctl.conf

      vm.swappiness=10
      

      Salve e feche o arquivo quando você terminar.

      Ajustando a Configuração da Pressão por Cache

      Outro valor relacionado que você pode querer modificar é o vfs_cache_pressure. Este ajuste configura o quanto o sistema escolherá para as informações cache dos objetos inode e dentry em detrimento de outros dados.

      Basicamente, tratam-se de dados de acesso sobre o sistema de arquivos. De maneira geral, isso é difícil de consultar e, com frequência, muito solicitado. Assim, é algo muito bom que o seu sistema armazene dados em cache. Você pode ver o valor atual questionando o sistema de arquivos proc novamente:

      • cat /proc/sys/vm/vfs_cache_pressure

      Output

      100

      Uma vez que ele está atualmente configurado, o nosso sistema remove as informações de inode do cache muito rapidamente. Podemos definir isso em um valor mais conservador como 50, digitando:

      • sudo sysctl vm.vfs_cache_pressure=50

      Output

      vm.vfs_cache_pressure = 50

      Novamente, isso é apenas válido para a nossa sessão atual. Podemos alterar esse valor, adicionando-o ao nosso arquivo de configuração como fizemos com a nossa configuração do parâmetro swappiness:

      • sudo nano /etc/sysctl.conf

      No final, adicione a linha que especifica o seu novo valor:

      /etc/sysctl.conf

      vm.vfs_cache_pressure=50
      

      Salve e feche o arquivo quando você terminar.

      Conclusão

      Seguir as etapas deste guia lhe dará algum espaço para respirar em casos que de outra forma conduziriam a exceções de falta de memória. O espaço de swap pode ser incrivelmente útil para evitar alguns desses problemas comuns.

      Se você está encontrando erros de OOM (out of memory – falta de memória), ou se você descobrir que o seu sistema não consegue usar os aplicativos de que você precisa, a melhor solução é otimizar as configurações do seu aplicativo ou atualizar o seu servidor.



      Source link