Enable memory profiling at runtime #822

Added two new Admin command:
* PROXYSQL MEMPROFILE START
* PROXYSQL MEMPROFILE STOP
pull/828/head
René Cannaò 10 years ago
parent 86718882e0
commit e5b6eb50fb

@ -517,6 +517,21 @@ bool admin_handler_command_proxysql(char *query_no_space, unsigned int query_no_
return false;
}
#ifndef NOJEM
if (query_no_space_length==strlen("PROXYSQL MEMPROFILE START") && !strncasecmp("PROXYSQL MEMPROFILE START",query_no_space, query_no_space_length)) {
bool en=true;
mallctl("prof.active", NULL, NULL, &en, sizeof(bool));
SPA->send_MySQL_OK(&sess->client_myds->myprot, NULL);
return false;
}
if (query_no_space_length==strlen("PROXYSQL MEMPROFILE STOP") && !strncasecmp("PROXYSQL MEMPROFILE STOP",query_no_space, query_no_space_length)) {
bool en=false;
mallctl("prof.active", NULL, NULL, &en, sizeof(bool));
SPA->send_MySQL_OK(&sess->client_myds->myprot, NULL);
return false;
}
#endif
if (query_no_space_length==strlen("PROXYSQL KILL") && !strncasecmp("PROXYSQL KILL",query_no_space, query_no_space_length)) {
proxy_info("Received PROXYSQL KILL command\n");
exit(EXIT_SUCCESS);

@ -131,7 +131,8 @@ static volatile int load_;
//#ifdef DEBUG
//const char *malloc_conf = "xmalloc:true,lg_tcache_max:16,purge:decay,junk:true,tcache:false";
//#else
const char *malloc_conf = "xmalloc:true,lg_tcache_max:16,purge:decay";
//const char *malloc_conf = "xmalloc:true,lg_tcache_max:16,purge:decay";
const char *malloc_conf = "xmalloc:true,lg_tcache_max:16,purge:decay,prof:true,prof_leak:true,lg_prof_sample:20,lg_prof_interval:30,prof_active:false";
//#endif /* DEBUG */
//const char *malloc_conf = "prof_leak:true,lg_prof_sample:0,prof_final:true,xmalloc:true,lg_tcache_max:16";

Loading…
Cancel
Save