{"id":487,"date":"2023-05-19T10:30:00","date_gmt":"2023-05-19T15:30:00","guid":{"rendered":"https:\/\/80bits.blog\/?p=487"},"modified":"2023-05-19T11:27:11","modified_gmt":"2023-05-19T16:27:11","slug":"linux-crear-un-archivo-swap","status":"publish","type":"post","link":"https:\/\/80bits.blog\/index.php\/2023\/05\/19\/linux-crear-un-archivo-swap\/","title":{"rendered":"Linux. Crear un archivo Swap"},"content":{"rendered":"\n<p>En este art\u00edculo, aprender\u00e1s a crear un archivo de intercambio o &#8216;swap file&#8217; en un sistema Linux, espec\u00edficamente en Ubuntu 20.04. Esta necesidad surgi\u00f3 al intentar compilar el c\u00f3digo fuente de un Large Language Model (LLM), y encontrar que incluso con 64 GB de RAM y un archivo de intercambio de 70 GB, la capacidad no era suficiente.<\/p>\n\n\n\n<p>El c\u00f3digo fuente que quise compilar es el siguiente: <a href=\"https:\/\/github.com\/mlc-ai\/mlc-llm\/blob\/main\/android\/README.md\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/mlc-ai\/mlc-llm\/blob\/main\/android\/README.md<\/a>. B\u00e1sicamente y a modo resumen es un LLM que se ejecutar\u00eda en modo local para Android, (cosa que no he podido comprobar por las razones de esta publicaci\u00f3n).  Claro que si no quieres hacer la compilacion puedes siempre bajar el APK <a href=\"https:\/\/mlc.ai\/mlc-llm\/#android\" target=\"_blank\" rel=\"noreferrer noopener\">aqui<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Crear un SwapFile Linux<\/h2>\n\n\n\n<p>Para crear un swapfile los pasos son los siguientes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo fallocate -l 100G \/ruta\/del\/archivo\/swapfile<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>fallocate: es el comando que se usara para asignar el espacio en disco para el archivo swapfile\n<ul class=\"wp-block-list\">\n<li>-l 100G: basicamente le estamos diciendo que nos cree un archivo de 100 GB<\/li>\n\n\n\n<li>y al final la ruta del archivo donde estar\u00e1 almacenado.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chmod 600 \/ruta\/del\/archivo\/swapfile\n<\/code><\/pre>\n\n\n\n<p>Con el comando anterior le daremos permisos al archivo, le da al propietario del archivo el permiso de lectura y escritura, pero no permite que otros usuarios lo vean o modifiquen.<\/p>\n\n\n\n<p>Con el siguiente comando vamos habilitar el archivo para usarlo ahora si como intercambio.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkswap \/ruta\/del\/archivo\/swapfile<\/code><\/pre>\n\n\n\n<p>Ahora lo \u00fanico que nos falta hacer es activar el archivo swap para que comience a usarse en el sistema.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo swapon \/ruta\/del\/archivo\/swapfile<\/code><\/pre>\n\n\n\n<p>Y con esto ya tendr\u00edas un archivo swap funcionando en tu sistema, si necesitas verificar que efectivamente esta en uso necesitaras este comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo swapon --show<\/code><\/pre>\n\n\n\n<p>Y eso seria todo, pero tenemos un \u00fanico inconveniente y es que si reiniciamos el sistema el archivo dejara de usarse como swap. Para guardar la configuraci\u00f3n de manera permanente hay que editar un archivo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/fstab <\/code><\/pre>\n\n\n\n<p>Y agregar la siguiente linea al final del mismo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/ruta\/del\/archivo\/swapfile none swap sw 0 0<\/code><\/pre>\n\n\n\n<p>Ahora si tendr\u00e1s un archivo de intercambio en linux en caso de que lo necesites como es mi caso.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Descubre c\u00f3mo crear un archivo de intercambio o &#8216;swap file&#8217; en Ubuntu linux 20.04. Paso a paso mediante la linea de comandos.<\/p>\n","protected":false},"author":1,"featured_media":495,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"jetpack_post_was_ever_published":true,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[66,65],"tags":[58,52,73,74],"class_list":["post-487","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-sistemas-operativos","tag-comandos","tag-consola","tag-linux","tag-swap"],"jetpack_featured_media_url":"https:\/\/80bits.blog\/wp-content\/uploads\/2023\/05\/personpckeyboard.jpeg","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/posts\/487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/comments?post=487"}],"version-history":[{"count":8,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/posts\/487\/revisions"}],"predecessor-version":[{"id":497,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/posts\/487\/revisions\/497"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/media\/495"}],"wp:attachment":[{"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/media?parent=487"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/categories?post=487"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/tags?post=487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}