[SERVER-4683] switch allocator - tcmalloc or jemalloc Created: 14/Jan/12  Updated: 11/Jul/16  Resolved: 10/Aug/12

Status: Closed
Project: Core Server
Component/s: Internal Code, Performance
Affects Version/s: None
Fix Version/s: 2.2.0-rc1

Type: Improvement Priority: Major - P3
Reporter: Dwight Merriman Assignee: Andy Schwerin
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to DOCS-420 Add doc for allocator options: system... Closed
is related to SERVER-188 Take a look at tcmalloc for performance Closed
is related to SERVER-1517 Turn on heapchecking in jstests on Li... Closed
Participants:

 Description   

specifically scanandorder and javascript have been mentioned



 Comments   
Comment by Githook User [ 21/May/14 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-8995 added gperftools-2.2 generated headers and SConscript files. cpu-profiler build tweaks.

config-10gen_macos.h:

  • generated by: ./configure
  • disabled HAVE_LIBUNWIND_H

config-10gen_linux.h:

  • generated by: ./configure --enable-minimal
  • applied config-10gen_linux.h changes made in src/gperftools-2.0/src/config-10gen_linux.h in commit eee3fe4ce66c7bbda9329a3c8bd8e3549b07437c:
    SERVER-4683 Support the imported tcmalloc, ystem tcmalloc or the default system allocator library.
    Pass --allocator=tcmalloc (default on Linux) or --allocator=system (default elsewhere)
    to control which allocator is used, and -use-system-tcmalloc to use the system
    installed tcmalloc instead of the one in the mongo source tree if you use --allocator=tcmalloc.
  • applied config-10gen_linux.h changes made in src/gperftools-2.0/src/config-10gen_linux.h in commit 498d9102e00e61ca2d41b7db1448969728884b50:
    SERVER-6758 - use third_party profiler when using --use-cpu-profiler
    does require libunwind installed on system

SCons --use-cpu-profiler changes:

Comment by auto [ 20/Aug/12 ]

Author:

{u'date': u'2012-08-14T08:33:23-07:00', u'email': u'ian.whalen@gmail.com', u'name': u'Ian Whalen'}

Message: SERVER-4683 Add license for tcmalloc
Branch: v2.2
https://github.com/mongodb/mongo/commit/1a6eb9d65223ddf094188ed5af124e04020e2a19

Comment by auto [ 16/Aug/12 ]

Author:

{u'date': u'2012-08-14T08:33:23-07:00', u'email': u'ian.whalen@gmail.com', u'name': u'Ian Whalen'}

Message: SERVER-4683 Add license for tcmalloc
Branch: master
https://github.com/mongodb/mongo/commit/783aaff18cc7880a4bdbf9d0c52a5b56491b5933

Comment by auto [ 10/Aug/12 ]

Author:

{u'date': u'2012-08-10T15:15:16-07:00', u'email': u'schwerin@10gen.com', u'name': u'Andy Schwerin'}

Message: SERVER-4683 Only use embedded tcmalloc on x86_64 linux by default.
Branch: master
https://github.com/mongodb/mongo/commit/572d39f494ea5aa292c03e24c793875a9b059c63

Comment by auto [ 10/Aug/12 ]

Author:

{u'date': u'2012-08-10T14:50:35-07:00', u'email': u'schwerin@10gen.com', u'name': u'Andy Schwerin'}

Message: SERVER-4683 Fix build break on older SCons, redux.
Branch: master
https://github.com/mongodb/mongo/commit/4c59df9c812fe88f663d102e570c9e5fcf994062

Comment by auto [ 10/Aug/12 ]

Author:

{u'date': u'2012-08-10T14:46:14-07:00', u'email': u'schwerin@10gen.com', u'name': u'Andy Schwerin'}

Message: SERVER-4683 Fix build break on older SCons.
Branch: master
https://github.com/mongodb/mongo/commit/9a3b9ff7e0549dedbb1889b4ef25613fb6351681

Comment by auto [ 10/Aug/12 ]

Author:

{u'date': u'2012-08-10T10:32:42-07:00', u'email': u'schwerin@10gen.com', u'name': u'Andy Schwerin'}

Message: SERVER-4683 Support the imported tcmalloc, ystem tcmalloc or the default system allocator library.

Pass --allocator=tcmalloc (default on Linux) or --allocator=system (default elsewhere)
to control which allocator is used, and -use-system-tcmalloc to use the system
installed tcmalloc instead of the one in the mongo source tree if you use --allocator=tcmalloc.
Branch: master
https://github.com/mongodb/mongo/commit/eee3fe4ce66c7bbda9329a3c8bd8e3549b07437c

Comment by auto [ 10/Aug/12 ]

Author:

{u'date': u'2012-08-10T10:47:06-07:00', u'email': u'schwerin@10gen.com', u'name': u'Andy Schwerin'}

Message: SERVER-4683 Config files for tcmalloc on Linux built by 10gen.
Branch: master
https://github.com/mongodb/mongo/commit/b49bac3c24d57d412a623545c9a3c367ca595b7e

Comment by auto [ 10/Aug/12 ]

Author:

{u'date': u'2012-08-10T10:45:43-07:00', u'email': u'schwerin@10gen.com', u'name': u'Andy Schwerin'}

Message: SERVER-4683 Import gperftools source files.
Branch: master
https://github.com/mongodb/mongo/commit/ff75718dd7ae6c176efab68f91161806ffab3ef0

Comment by auto [ 15/Jan/12 ]

Author:

{u'login': u'dwight', u'name': u'dwight', u'email': u'dwight@10gen.com'}

Message: SERVER-4683 use stackbufbuilder in stringbuilder. this is a tweak and does not solve the jira,
but it's less mallocs so tagged thereof. might be helpful as a couple semi-hot paths (update, geo)
use StringBuilder
Branch: master
https://github.com/mongodb/mongo/commit/e45f8d997c1593d1e9e8bf32f22b46ebc980a1e2

Comment by auto [ 14/Jan/12 ]

Author:

{u'login': u'dwight', u'name': u'dwight', u'email': u'dwight@10gen.com'}

Message: SERVER-4683 the old resize code for bufbuilder was doubling but was not staying power
of two aligned
Branch: master
https://github.com/mongodb/mongo/commit/2941743aa0ec1cc1f35ee73fbe69b32ee8ffbdc6

Comment by auto [ 14/Jan/12 ]

Author:

{u'login': u'dwight', u'name': u'dwight', u'email': u'dwight@10gen.com'}

Message: SERVER-4683 this commit is only a tweak, but the bufbuilder estimate was always too small
Branch: master
https://github.com/mongodb/mongo/commit/fa0705dc9c10c7a702ecb52764b14f03cfac8dcb

Generated at Thu Feb 08 03:06:41 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.