Ship server with libjemalloc

Bug #1099774 reported by Raghavendra D Prabhu
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Fix Released
Medium
Laurynas Biveinis
5.1
Won't Fix
Undecided
Unassigned
5.5
Fix Released
Medium
Unassigned
5.6
Fix Released
Medium
Laurynas Biveinis
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC
Fix Released
Undecided
Unassigned

Bug Description

MySQL 5.5.29 ships with libtcmalloc_minimal and is built with it.
It would be good if we follow something similar based on our
previous benchmarks like -- http://www.mysqlperformanceblog.com/2012/07/05/impact-of-memory-allocators-on-mysql-performance/

Related branches

Revision history for this message
Vadim Tkachenko (vadim-tk) wrote :

we are going to ship jemalloc

Changed in percona-server:
status: New → In Progress
assignee: nobody → Ignacio Nin (ignacio-nin)
milestone: none → 5.5.30-30.1
summary: - Upstream ships with libtcmalloc_minimal
+ Ship server with libjemalloc
Changed in percona-xtradb-cluster:
status: New → Triaged
Changed in percona-xtradb-cluster:
milestone: none → 5.5.30-23.7.4
status: Triaged → Fix Released
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :
Download full text (3.3 KiB)

Is it normal not to find libjemalloc after installing latest Percona Server 5.6.27 from source?

As per documentation path to libjemalloc.so must be specified:

https://github.com/percona/tokudb-percona-server-5.6/wiki/Run-mysqld-with-jemalloc
https://www.percona.com/doc/percona-server/5.6/tokudb/tokudb_installation.html#libjemalloc-library

CMAKE command:

cmake -DCMAKE_INSTALL_PREFIX=/opt/percona-5.6.27 -DMYSQL_DATADIR=/opt/percona-5.6.27/datadir -DSYSCONFDIR=/opt/ -DWITH_SSL=system -DMYSQL_TCP_PORT=3307 -DMYSQL_UNIX_ADDR=/opt/percona-5.6.27/mysqld.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=1 -DCOMPILATION_COMMENT="Shahriyar Rzayev's Percona Server" -DOPTIMIZER_TRACE=1 -DWITH_ZLIB=system -DWITH_VALGRIND=1 -DCMAKE_C_FLAGS=-DHAVE_purify -DCMAKE_CXX_FLAGS=-DHAVE_purify -DENABLE_DOWNLOADS=1

make
make install

No result:

[root@testing-host1 ~]# locate jemalloc
[root@testing-host1 ~]# locate libjemalloc
[root@testing-host1 ~]# ls /usr/local/ | grep jemalloc
[root@testing-host1 ~]# ls /usr/local/ | grep libjemalloc
[root@testing-host1 ~]# ls /usr/local/ | grep malloc

Again no result:

[root@testing-host1 ~]# ls /opt/percona-5.6.27/lib/
libHotBackup.so libmysqlservices.a libperconaserverclient_r.a libperconaserverclient_r.so.18 libperconaserverclient.so libperconaserverclient.so.18.1.0
libmysqld.a libperconaserverclient.a libperconaserverclient_r.so libperconaserverclient_r.so.18.1.0 libperconaserverclient.so.18 mysql
[root@testing-host1 ~]# ls /opt/percona-5.6.27/lib/ | grep malloc
[root@testing-host1 ~]# ls /opt/percona-5.6.27/lib/mysql/ | grep malloc

It is also obvious that jemalloc is not shipped with official .tar.gz:

[root@testing-host1 ~]# tar -ztvf Percona-Server-5.6.27-rel75.0-Linux.x86_64.ssl101.tar.gz | grep jemalloc
[root@testing-host1 ~]# tar -ztvf Percona-Server-5.6.27-rel75.0-Linux.x86_64.ssl101.tar.gz | grep malloc
-rw-r--r-- root/root 1506 2015-11-03 15:14 Percona-Server-5.6.27-rel75.0-Linux.x86_64.ssl101/mysql-test/suite/innodb/r/innodb-use-sys-malloc.result
-rw-r--r-- root/root 56 2015-11-03 15:14 Percona-Server-5.6.27-rel75.0-Linux.x86_64.ssl101/mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt
-rw-r--r-- root/root 1560 2015-11-03 15:14 Percona-Server-5.6.27-rel75.0-Linux.x86_64.ssl101/mysql-test/suite/innodb/t/innodb-use-sys-malloc.test
-rw-r--r-- root/root 1017 2015-11-03 15:14 Percona-Server-5.6.27-rel75.0-Linux.x86_64.ssl101/mysql-test/suite/sys_vars/r/innodb_use_sys_malloc_basic.result
-rw-r--r-- root/root 796 2015-11-03 15:14 Percona-Server-5.6.27-rel75.0-Linux.x86_64.ssl101/mysql-test/suite/sys_vars/t/innodb_use_sys_malloc_basic.test

Another thing to mention about Ubuntu percona-server-tokudb-5.6 package. It has libjemalloc1 dependency which is installing as separate package:

sudo apt-get install percona-server-tokudb-5.6
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
 libjemalloc1
The following NEW packages will be installed:
 libjemalloc1 percona-server-tokudb-5.6

So the result is with binary version jemalloc installed as d...

Read more...

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

We are not *shipping* jemalloc. Users must get it from somewhere else.

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PXC-1281

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-1299

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.