Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
▼
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
▼
marzo
(Total:
15
)
- Peering, BGP y Sistemas Autónomos (AS)
- OpenVPN y streaming de partidos fútbol
- Mundo Hacker en Discovery MAX
- Diferencias entre UEFI vs BIOS (y MBR vs GPT)
- gperftools, la implementación malloc() de Google
- Skype y las videollamadas grupales
- Todo sobre las Unidades SSD
- Diferencias marcas modelos y gama de los mejores D...
- Raspberry Pi
- Todas las versiones de Android
- Términos y conceptos básicos en Android
- Cómo saber quién se conecta a tu red WiFi: ¿El vec...
- Crear Tunel SSH usando Putty
- ¿NTFS, FAT32 o exFAT para un pendrive o disco duro...
- Auditar el acceso a ficheros en Windows 7 y Window...
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
seguridad
(
395
)
privacidad
(
363
)
google
(
353
)
ransomware
(
338
)
vulnerabilidad
(
301
)
Malware
(
263
)
Windows
(
243
)
android
(
242
)
cve
(
235
)
tutorial
(
235
)
manual
(
220
)
software
(
201
)
hardware
(
193
)
linux
(
124
)
twitter
(
115
)
ddos
(
94
)
WhatsApp
(
90
)
Wifi
(
85
)
cifrado
(
77
)
herramientas
(
75
)
hacking
(
73
)
sysadmin
(
67
)
app
(
65
)
Networking
(
56
)
nvidia
(
52
)
ssd
(
51
)
youtube
(
50
)
adobe
(
43
)
firmware
(
42
)
office
(
41
)
hack
(
40
)
firefox
(
35
)
contraseñas
(
32
)
eventos
(
32
)
antivirus
(
31
)
juegos
(
31
)
cms
(
30
)
flash
(
28
)
anonymous
(
27
)
MAC
(
25
)
apache
(
25
)
programación
(
25
)
exploit
(
23
)
javascript
(
22
)
multimedia
(
22
)
Kernel
(
20
)
ssl
(
19
)
SeguridadWireless
(
17
)
documental
(
16
)
Forense
(
15
)
conferencia
(
15
)
Debugger
(
14
)
lizard squad
(
14
)
técnicas hacking
(
13
)
auditoría
(
12
)
delitos
(
11
)
metasploit
(
11
)
Virtualización
(
10
)
adamo
(
9
)
reversing
(
9
)
Rootkit
(
8
)
Ehn-Dev
(
7
)
MAC Adress
(
6
)
antimalware
(
6
)
oclHashcat
(
5
)
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
gperftools, la implementación malloc() de Google
domingo, 24 de marzo de 2013
|
Publicado por
el-brujo
|
Editar entrada
google-perftools (gperftools, tcmalloc) es una colección de un alto rendimiento multi-threaded implementado la función malloc(), además de algunas herramientas de análisis de rendimiento.
gperftools incluye TCMalloc (Thread-Caching Malloc), heap-checker, heap-profiler y cpu-profiler.
Si tienes un servidor con más de 8 núcleos (cores) deberías usar algo diferente que el asignador de memoria predeterminada de glibc.
Puede utilizar tcmalloc en aplicaciones que no has compilado tu mismo, mediante el uso de LD_PRELOAD:
También puedes instalar gperftools usando yum (CentOS, RHEL, Fedora, etc) (sin tener que compilar) usando el repositorio epel (o tipo atrpms, rpmfusion, rpmforge, etc) :
Introducción
Los asignadores de memoria forman parte de interesantes estudios de la ingeniería de software. Esta asignador proporciona implementaciones del standard de rutinas de C, malloc(), free() y realloc()gperftools incluye TCMalloc (Thread-Caching Malloc), heap-checker, heap-profiler y cpu-profiler.
Si tienes un servidor con más de 8 núcleos (cores) deberías usar algo diferente que el asignador de memoria predeterminada de glibc.
Instalación
wget http://code.google.com/p/gperftools/downloads/detail?name=gperftools-2.0.tar.gz
tar xvzf gperftools-2.0.tar.gz
cd gperftools-2.0
./configure (usar --enable-frame-pointers) si estás usando sistema x86-64 y mira libunwind))
make
make install
Uso
Puede utilizar tcmalloc en aplicaciones que no has compilado tu mismo, mediante el uso de LD_PRELOAD:
$ LD_PRELOAD="/usr/lib/libtcmalloc.so"
También puedes instalar gperftools usando yum (CentOS, RHEL, Fedora, etc) (sin tener que compilar) usando el repositorio epel (o tipo atrpms, rpmfusion, rpmforge, etc) :
yum install gperftools-libs --enablerepo=epel
el cuál instala:- /usr/lib64/libtcmalloc.so.4
- /usr/lib64/libtcmalloc_minimal.so.4
Gestión de librerías compartidas en GNU/Linux
Y usar por ejemplo MySQL:export LD_PRELOAD="/usr/lib64/libtcmalloc_minimal.so.4" && binario mysqlTambién puedes tratar de jemalloc que supuestamente está cerca del rendimiento de tcmalloc
pero utiliza menos memoria:
yum install jemalloc --enablerepo=epelEl cuál instala:
- /usr/lib64/libjemalloc.so.1
Ejemplo uso MySQL (mysqld)
Y usarla para tu ejecutable (binario)
- export LD_PRELOAD="/usr/lib64/libjemalloc.so.1" && binario
O añadir en el my.cnf la librería que quieres usar:
[mysqld_safe]
- malloc-lib=/usr/lib64/libtcmalloc_minimal.so.4
- malloc-lib=/usr/lib64/libjemalloc.so.1
El nombre de la biblioteca para usar para la asignación de memoria en lugar
de lalibrería del sistema de malloc(). Cualquier librería se puede
utilizar al especificar el nombre de ruta, pero hay una forma de acceso directo
para permitir el usode la librería tcmalloc que se incluye con las distribuciones
de MySQL binarios para Linux en MySQL 5.5.
La opción malloc-lib funciona modificando el valor de entorno LD_PRELOAD para afectar la vinculación dinámica para que el cargador para encontrar la librería de asignación de memoria cuando se ejecuta mysqld.
Estas líneas también son suficientes para los usuarios en cualquier plataforma que ha instalado un paquete tcmalloc en /usr/lib. Para utilizar una biblioteca tcmalloc específico, especifique el nombre de ruta completo. ejemplo:
[mysqld_safe] malloc-lib = /opt/lib/libtcmalloc_minimal.so
http://www.ibm.com/developerworks/wikis/display/LinuxP/Tuning+and+optimizing+malloc+on+PowerLinux
http://en.wikipedia.org/wiki/C_dynamic_memory_allocation
La opción malloc-lib funciona modificando el valor de entorno LD_PRELOAD para afectar la vinculación dinámica para que el cargador para encontrar la librería de asignación de memoria cuando se ejecuta mysqld.
- Si la opción no se da, o se da sin un valor (- malloc-lib =), LD_PRELOAD no se modifica y no se intenta utilizar tcmalloc.
- Si se da la opción como - malloc-lib = tcmalloc, mysqld_safe busca una biblioteca tcmalloc en / usr / lib y luego en la ubicación pkglibdir MySQL (por ejemplo, / usr / local / mysql / lib o lo que sea apropiado). Si tmalloc es encontrado, su nombre de ruta se añade al principio del valor LD_PRELOAD para mysqld. Si tcmalloc no se encuentra, mysqld_safe aborta con un error.
- Si se da la opción como - malloc-lib = / ruta / a / algun / biblioteca, la ruta completa se agrega al principio del valor LD_PRELOAD. Si la ruta completa a un archivo inexistente o ilegible, mysqld_safe aborta con un error.
- Para los casos en que mysqld_safe añade un nombre de ruta para LD_PRELOAD, se agrega la ruta de inicio de cualquier valor existente de la variable ya tiene. Los usuarios de Linux pueden utilizar el libtcmalloc_minimal.so incluidos en los paquetes binarios añadiendo estas líneas al archivo my.cnf:
Estas líneas también son suficientes para los usuarios en cualquier plataforma que ha instalado un paquete tcmalloc en /usr/lib. Para utilizar una biblioteca tcmalloc específico, especifique el nombre de ruta completo. ejemplo:
[mysqld_safe] malloc-lib = /opt/lib/libtcmalloc_minimal.so
Otras opciones (Memory allocators) C++
- nedmalloc
- jemalloc (usado por Facebook y Firefox)
- lockless
- PTMalloc2-3 GNU C library (libc)forma parte de glibc, antes usaba dlmalloc
- ottomalloc
- nedmalloc
Instalación jemalloc
wget http://www.canonware.com/download/jemalloc/jemalloc-3.3.1.tar.bz2
tar -xjvf jemalloc-3.3.1.tar.bz2
cd jemalloc-3.3.1
./configure
make && sudo make install
export LD_PRELOAD=$LD_PRELOAD:/usr/local/lib/libjemalloc.so
Comprobar uso librería
pmap $PID | grep mallocLinks de interés
http://www.oracle.com/technetwork/articles/servers-storage-dev/mem-alloc-1557798.htmlhttp://www.ibm.com/developerworks/wikis/display/LinuxP/Tuning+and+optimizing+malloc+on+PowerLinux
http://en.wikipedia.org/wiki/C_dynamic_memory_allocation
Enviar por correo electrónico
Escribe un blog
Compartir en X
Compartir con Facebook
Compartir en Pinterest
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.