Herramientas de usuario

Herramientas del sitio


notas:linux:manejo_de_memoria_en_linux:hugepages

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
notas:linux:manejo_de_memoria_en_linux:hugepages [2014/01/02 20:48] – [¿Cómo se si mi sistema operativo Linux tiene habilitada dicha funcionalidad en el kernel?] cayunotas:linux:manejo_de_memoria_en_linux:hugepages [2016/07/07 19:02] (actual) – [Referencias] cayu
Línea 32: Línea 32:
 El núcleo compilado con hugepage debe mostrar el número de páginas gigantes configuradas en el sistema. De lo contrario, es necesario recompilar el kernel de Linux con la opción de CONFIG_HUGETLBFS habilitada. El núcleo compilado con hugepage debe mostrar el número de páginas gigantes configuradas en el sistema. De lo contrario, es necesario recompilar el kernel de Linux con la opción de CONFIG_HUGETLBFS habilitada.
  
-Para mas información leer [[linux:Manejo de memoria en Linux]].+Para mas información leer [[notas:linux:Manejo de memoria en Linux]].
  
 ===== Los pasos a seguir son ===== ===== Los pasos a seguir son =====
Línea 48: Línea 48:
   * No son compatibles con la AMM (Automatic Memory Management) en 11g   * No son compatibles con la AMM (Automatic Memory Management) en 11g
   * Hay un bug con Grid Infraestructure 11g, donde no se utiliza el límite memlock tal y como hemos definido: Bug 9251136 "INSTANCE WILL NOT USE HUGEPAGE IF STARTED BY SRVCTL"   * Hay un bug con Grid Infraestructure 11g, donde no se utiliza el límite memlock tal y como hemos definido: Bug 9251136 "INSTANCE WILL NOT USE HUGEPAGE IF STARTED BY SRVCTL"
 +  * El aspecto principal de Oracle que se ve afectado por el uso de HugePages es la **SGA**
  
  
Línea 111: Línea 112:
  
 <code> <code>
-lnlxccp:~ # ipcs+srvlxsid:~ # ipcs
 ------ Shared Memory Segments -------- ------ Shared Memory Segments --------
 key        shmid      owner      perms      bytes      nattch     status key        shmid      owner      perms      bytes      nattch     status
-0x52205704 32768      oraccp     640        20487077888 375 +0x52205704 32768      orasid     640        20487077888 375 
-0x00000000 65537      ccpadm     777        1024       1 +0x00000000 65537      sidadm     777        1024       1 
-0x00004dbe 13074463   ccpadm     777        574868     1 +0x00004dbe 13074463   sidadm     777        574868     1 
-0x00002748 13140000   ccpadm     740        534592     15+0x00002748 13140000   sidadm     740        534592     15
 ------ Semaphore Arrays -------- ------ Semaphore Arrays --------
 key        semid      owner      perms      nsems key        semid      owner      perms      nsems
-0xc1f65328 98304      oraccp     640        1004 +0xc1f65328 98304      orasid     640        1004 
-0x00004e62 3932277    ccpadm     740        1 +0x00004e62 3932277    sidadm     740        1 
-0x00004e28 3965046    ccpadm     740        1 +0x00004e28 3965046    sidadm     740        1 
-0x00004e68 3997815    ccpadm     740        1+0x00004e68 3997815    sidadm     740        1
 ------ Message Queues -------- ------ Message Queues --------
 key        msqid      owner      perms      used-bytes   messages key        msqid      owner      perms      used-bytes   messages
Línea 186: Línea 187:
 hard memlock 60397977 hard memlock 60397977
 </code> </code>
 +
 +
 Script que calcula automaticamente el valor de hugepages, usar solo como orientación Script que calcula automaticamente el valor de hugepages, usar solo como orientación
 +
 +Oracle recomiendar calcular de esta forma :
 +
 +**ipcs -m**
 +
 +^ **key** ^ **shmid** ^ **owner** ^ **perms** ^ **bytes** ^
 +| 0x00004dc4\\ 0x00004dbe\\ 0x52205704\\ 0x00000000\\ 0x0382be84\\ 0x00002749\\ 0x0000271a\\ 0x00002711\\ 0x00002712\\ 0x00002713\\ 0x00002744\\ 0x0000272f\\ 0x00002743\\ 0x0000274e\\ 0x00002759\\ 0x0000274f\\ 0x0000271e\\ 0x00002719\\ 0x00002718\\ 0x00002722\\ 0x00002738\\ 0x00002717\\ 0x00002714\\ 0x00002739\\ 0x00002723\\ 0x00002731\\ 0x00002746\\ 0x00002751\\ 0x00002750\\ 0x00002761\\ 0x00002716\\ 0x0000272e\\ 0x00002732\\ 0x0000274a\\ 0x00002748 | 229376\\ 262145\\ 88670210\\ 88702979\\ 360452\\ 88735749\\ 92143622\\ 92176391\\ 92209160\\ 92241929\\ 92274698\\ 92307467\\ 92340236\\ 92405773\\ 95813646\\ 99221519\\ 99254288\\ 99287057\\ 99319826\\ 99352595\\ 99385364\\ 99418133\\ 99483670\\ 99516439\\ 99549208\\ 99581977\\ 99614746\\ 99647515\\ 99680284\\ 99713053\\ 101646366\\ 101679135\\ 101711904\\ 101744673\\ 101777442 | sapadm\\ root\\ orasid\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm\\ sidadm | 760\\ 777\\ 640\\ 740\\ 640\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740\\ 740 | 40141728\\ 793440\\ 47246737408\\ 1024\\ 4096\\ 1639280\\ 200000000\\ 588\\ 62456056\\ 200592000\\ 179368\\ 6387876\\ 23738964\\ 86484792\\ 60211232\\ 86040\\ 40000000\\ 2147483648\\ 2147483648\\ 6423584\\ 662000000\\ 31072\\ 645640\\ 45454312\\ 1799999904\\ 92159912\\ 287465496\\ 33554456\\ 4194456\\ 19480\\ 4096000000\\ 126790\\ 83394560\\ 2076\\ 535000 |
 +
 +De la cantidad de bytes formamos una matriz que es la de segmentos de memoria compartida en bytes y realizamos el siguiente cálculo :
 +
 +<note>
 +**| MATRIZ DE SEGMENTOS DE MEMORIA COMPARTIDA | / (TAMAÑO DE PAGINA*1024)+1**
 +</note>
  
 http://docs.oracle.com/cd/E37670_01/E37355/html/ol_config_hugepages.html http://docs.oracle.com/cd/E37670_01/E37355/html/ol_config_hugepages.html
Línea 226: Línea 242:
 # End # End
 </code> </code>
 +
 +Con Oracle en el Kernel 3.0 es recomendable deshabilitar las páginas transparentes.
 +
 +Podemos hacerlos on-the-fly
 +<code>
 +echo never > /sys/kernel/mm/transparent_hugepage/enabled
 +</code>
 +
 +O al inicio del sistema desde la cmdline de booteo :
 +<code>
 +transparent_hugepage=never
 +</code>
 +
 +==== Referencias ====
 +
 +  * SAP Note
 +    * 1672954 - Oracle 11g: Usage of hugepages on Linux
 +    * 1681501 - Configure a SAP JVM to use large pages on Linux
 +    * 1871318 - Linux: Disable Transparent HugePages for Oracle Database
 +    * 1672954 - Oracle 11g: Usage of hugepages on Linux
 +    * 1384753 - Oracle 10g: Using of hugepages on Linux
 +  * Oracle Metalink note 361323.1
 +  * [[http://www.oracle.com/technetwork/articles/servers-storage-dev/hugepages-2099009.html|How to Configure x86 Memory Performance for Large Databases]]
 +  * [[http://scn.sap.com/community/oracle/blog/2013/06/17/oracle-myths-and-common-misconceptions-about-transparent-huge-pages-for-oracle-databases-on-linux-uncovered|[Oracle] Myths and common misconceptions about (transparent) huge pages for Oracle databases (on Linux) uncovered]]
notas/linux/manejo_de_memoria_en_linux/hugepages.1388695720.txt.gz · Última modificación: 2014/01/02 20:48 por cayu