{"id":4514,"date":"2025-04-17T13:00:43","date_gmt":"2025-04-17T16:00:43","guid":{"rendered":"https:\/\/powertuning.com.br\/?p=4514"},"modified":"2025-04-16T08:28:17","modified_gmt":"2025-04-16T11:28:17","slug":"huge-pages-como-configurar","status":"publish","type":"post","link":"https:\/\/powertuning.com.br\/blog\/huge-pages-como-configurar\/","title":{"rendered":"Huge Pages &#8211; Como configurar"},"content":{"rendered":"<h4 class=\"separator\"><strong>Primeiro vamos definir o que \u00e9 Huge Pages e seu conceito:<\/strong><\/h4>\n<p><b>HugePages<\/b>\u00a0\u00e9 um recurso do Linux que usa p\u00e1ginas de mem\u00f3ria maiores (2MB em vez de 4KB). No Oracle, isso melhora o desempenho, porque diminui a carga de gerenciamento de mem\u00f3ria, reduz o uso de CPU e evita que a mem\u00f3ria seja trocada para o disco pois as p\u00e1ginas alocadas com HugePages s\u00e3o fixadas e bloqueadas na RAM.<\/p>\n<p>Se for identificado que o seu sistema est\u00e1 utilizando swap, ou seja, usando o disco como se fosse mem\u00f3ria, \u00e9 importante verificar a configura\u00e7\u00e3o do\u00a0<code>swappiness<\/code>\u00a0e conferir em quantos por cento ele est\u00e1. Uma boa pr\u00e1tica \u00e9 manter o\u00a0<code>swappiness<\/code>\u00a0entre 2% e 10%.<\/p>\n<p>Para verificar o\u00a0<b>swappiness<\/b>\u00a0digite no bash:<\/p>\n<p># cat \/proc\/sys\/vm\/swapiness<\/p>\n<p>O padr\u00e3o dever\u00e1 ser 30 (no oracle Linux)<\/p>\n<p>Para alterar o valor :<\/p>\n<p><strong>1 &#8211; Edite o arquivo sysctl.conf<\/strong><\/p>\n<p># vi \/etc\/sysctl.conf<\/p>\n<p><strong>2 &#8211; Inserir novo valor na ultima linha<\/strong><\/p>\n<p>vm.swappiness=10<\/p>\n<p>Exemplo:<\/p>\n<div class=\"separator\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgYy8qXTYNLBiSBDbGpLJyyNC0Cmhk9WmyrOjXKe9WUXFfAk82KzHGPqVZMF8FTHPrE7Cnv171QO-BF5afVn7XucTrzswiT_cXGaETkt-l5MQN_lluiIWzYFdllrcp9l9BpL86-5X-BRit9Hd42lZ34lB_tE9WTv6xYzyo-HzkwkCN_DEygEFZxk_RbZuq8\/s155\/swapi.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgYy8qXTYNLBiSBDbGpLJyyNC0Cmhk9WmyrOjXKe9WUXFfAk82KzHGPqVZMF8FTHPrE7Cnv171QO-BF5afVn7XucTrzswiT_cXGaETkt-l5MQN_lluiIWzYFdllrcp9l9BpL86-5X-BRit9Hd42lZ34lB_tE9WTv6xYzyo-HzkwkCN_DEygEFZxk_RbZuq8\/s1600\/swapi.jpg\" width=\"332\" height=\"60\" border=\"0\" data-original-height=\"28\" data-original-width=\"155\" \/><\/a><\/div>\n<div><\/div>\n<div><\/div>\n<p><strong>3 &#8211; Agora digite para carregar as informa\u00e7\u00f5es<\/strong><\/p>\n<p># sysctl -p<\/p>\n<p>Pronto!! A parte de swappiness feito.. Voltando agora para HugePages, vamos configurar:<\/p>\n<p>Primeira coisa, precisamos ter certeza que n\u00e3o estamos utilizando HugePages. Para tirar esta d\u00favida , vamos digitar no bash<\/p>\n<p># grep Huge \/proc\/meminfo<\/p>\n<p>Caso voc\u00ea esteja utilizando , voc\u00ea deve se deparar com este tipo de informa\u00e7\u00e3o:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEju-UyFY_p2gwv-nddwkEu_-DC30Q8CvSC6Vo8Ede991QbtfqhRajm7gqx2HMbyqigQjUfSf1X8IxYpLUJbHl-qQLn7YjygQdCw9ArXp2YMvvSYi21-po52j1pdM4aXbORhnrCKKpCscMaV-Avk9bfJH9k-f4uGNfGwypTpSVAIHiG_yV6IPXbTByI9aflF\/s1600\/hugepageson.jpg\" width=\"293\" height=\"141\" \/><\/p>\n<div class=\"separator\">\n<div>Caso voc\u00ea n\u00e3o tenha, os valores de HugePages Total, Free, Rsvd e Surp dever\u00e1 estar zerado.<\/div>\n<\/div>\n<p>Agora vamos calcular o valor de HugePages. Se os valores estiverem zerados, voc\u00ea pode usar um script fornecido pela Oracle ou simplesmente somar todas as SGAs e dividir por 2 MB. Lembrando que a soma das SGAs deve estar em MB, caso deseje dividir em megabytes.<\/p>\n<p>Segue o script abaixo.<strong> Se quiser utiliz\u00e1-lo, importe-o para o servidor do banco com a extens\u00e3o\u00a0<code>.sh<\/code>\u00a0e execute. N\u00e3o se esque\u00e7a de dar permiss\u00e3o para execu\u00e7\u00e3o.<\/strong><\/p>\n<pre class=\"\">#!\/bin\/bash\r\n#\r\n# hugepages_setting.sh\r\n#\r\n# Linux bash script to compute values for the\r\n# recommended HugePages\/HugeTLB configuration\r\n#\r\n# Note: This script does calculation for all shared memory\r\n# segments available when the script is run, no matter it\r\n# is an Oracle RDBMS shared memory segment or not.\r\n# Check for the kernel version\r\nKERN=`uname -r | awk -F. '{ printf(\"%d.%d\\n\",$1,$2); }'`\r\n# Find out the HugePage size\r\nHPG_SZ=`grep Hugepagesize \/proc\/meminfo | awk {'print $2'}`\r\n# Start from 1 pages to be on the safe side and guarantee 1 free HugePage\r\nNUM_PG=1\r\n# Cumulative number of pages required to handle the running shared memory segments\r\nfor SEG_BYTES in `ipcs -m | awk {'print $5'} | grep \"[0-9][0-9]*\"`\r\ndo\r\n   MIN_PG=`echo \"$SEG_BYTES\/($HPG_SZ*1024)\" | bc -q`\r\n   if [ $MIN_PG -gt 0 ]; then\r\n      NUM_PG=`echo \"$NUM_PG+$MIN_PG+1\" | bc -q`\r\n   fi\r\ndone\r\n# Finish with results\r\ncase $KERN in\r\n   '2.4') HUGETLB_POOL=`echo \"$NUM_PG*$HPG_SZ\/1024\" | bc -q`;\r\n          echo \"Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL\" ;;\r\n   '2.6' | '3.8' | '3.10' | '4.1' | '4.14' ) echo \"Recommended setting: vm.nr_hugepages = $NUM_PG\" ;;\r\n    *) echo \"Unrecognized kernel version $KERN. Exiting.\" ;;\r\nesac\r\n# End<\/pre>\n<div class=\"separator\">\n<div>Ao rodar o script, temos a recomenda\u00e7\u00e3o de vm.nr_hugepages. Exemplo:<\/div>\n<div><\/div>\n<div><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjJ0FeIvKnzO8NPyLoyqlBMh5H8nSQzip2P1vIZBlx0Sqk6V9MS0aVBYOXZHjJiml33sT3gnZNgX8ATTGDmp2KxXqI78tN-ysvKSUt3TW5KFb3mcQ-7tT2bZFfnMLdt82Vz76QxjG0n2kR5YcmfsvPNKhsPcfFS589rjPaDatpyXFW6V_UZcymqRSeU_-XT\/s320\/h.jpg\" alt=\"\" width=\"585\" height=\"75\" \/><\/div>\n<div><\/div>\n<div>No nosso exemplo, o valor \u00e9 1330. Com isso, vamos editar o arquivo\u00a0<code>\/etc\/sysctl.conf<\/code>\u00a0e adicionar na \u00faltima linha:<\/div>\n<div><\/div>\n<div>vm.nr_hugepages=1330<\/div>\n<div><\/div>\n<div>Salve o arquivo e, no bash, digite para carregar as configura\u00e7\u00f5es:<\/div>\n<div><\/div>\n<div>#sysctl -p<\/div>\n<div><\/div>\n<div>Pronto! Estamos quase finalizando. Agora, basta verificar o par\u00e2metro\u00a0<code>use_large_pages<\/code>\u00a0no banco de dados e garantir que esteja como\u00a0<code>TRUE<\/code>. Se estiver como\u00a0<code>FALSE<\/code>, ser\u00e1 necess\u00e1rio alter\u00e1-lo para\u00a0<code>TRUE<\/code>.<\/div>\n<div><\/div>\n<div>Para finalizar, reinicie o banco de dados. Ap\u00f3s ele subir, execute novamente o comando:<\/div>\n<div><\/div>\n<div>#grep Huge \/proc\/meminfo<\/div>\n<div><\/div>\n<\/div>\n<p>Os valores agora devem estar diferentes de zero.<\/p>\n<div class=\"separator\">\n<div>\n<p>OBS: Tamb\u00e9m podemos verificar no alert log do banco, mas deixo essa parte para a pr\u00f3xima.<\/p>\n<p>Valeu, galera!!!<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Primeiro vamos definir o que \u00e9 Huge Pages e seu conceito: HugePages\u00a0\u00e9 um recurso do Linux que usa p\u00e1ginas de mem\u00f3ria maiores (2MB em vez de 4KB). No Oracle, isso melhora o desempenho, porque diminui a carga de gerenciamento de mem\u00f3ria, reduz o uso de CPU e evita que a mem\u00f3ria seja trocada para o&hellip; <br \/> <a class=\"read-more\" href=\"https:\/\/powertuning.com.br\/blog\/huge-pages-como-configurar\/\">Leia mais<\/a><\/p>\n","protected":false},"author":23,"featured_media":4515,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_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":[176,60,70],"tags":[387,394,431,439,426,435,427,45,440,420,433,72,436,428,425,336,424,441,432,429,421,422,423,430,434,437,438],"class_list":["post-4514","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-banco-de-dados","category-linx","category-oracle","tag-linux","tag-memoria","tag-administracao-de-sistemas","tag-alert-log","tag-banco-de-dados-oracle","tag-bash","tag-configuracao-do-linux","tag-desempenho","tag-gerenciamento-de-memoria","tag-hugepages","tag-memoria-compartilhada","tag-oracle","tag-oracle-db","tag-oracle-linux","tag-otimizacao-de-memoria","tag-performance-de-banco-de-dados","tag-ram","tag-script-oracle","tag-sga","tag-shell-script","tag-swappiness","tag-sysctl","tag-sysctl-conf","tag-tuning-de-performance","tag-uso-de-swap","tag-vm-nr_hugepages","tag-vm-swappiness"],"jetpack_featured_media_url":"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/04\/NOVIDADE-NO-BLOG-1104-WORDPRESS.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts\/4514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/comments?post=4514"}],"version-history":[{"count":3,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts\/4514\/revisions"}],"predecessor-version":[{"id":4518,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts\/4514\/revisions\/4518"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/media\/4515"}],"wp:attachment":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/media?parent=4514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/categories?post=4514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/tags?post=4514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}