mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-15 08:29:45 +00:00
improve some defaults to tune performance if you use -heavy_timer, try not using it
This commit is contained in:
parent
3b56c119a7
commit
5d7831348b
@ -1940,6 +1940,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_management_exec(char *relative_oid,
|
|||||||
\return 0 on success
|
\return 0 on success
|
||||||
*/
|
*/
|
||||||
SWITCH_DECLARE(int32_t) set_high_priority(void);
|
SWITCH_DECLARE(int32_t) set_high_priority(void);
|
||||||
|
SWITCH_DECLARE(int32_t) set_normal_priority(void);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Change user and/or group of the running process
|
\brief Change user and/or group of the running process
|
||||||
|
@ -824,6 +824,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (high_prio) {
|
if (high_prio) {
|
||||||
set_high_priority();
|
set_high_priority();
|
||||||
|
} else {
|
||||||
|
set_normal_priority();
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_core_setrlimits();
|
switch_core_setrlimits();
|
||||||
|
@ -630,7 +630,7 @@ SWITCH_DECLARE(switch_status_t) switch_threadattr_priority_increase(switch_threa
|
|||||||
struct apr_threadattr_t *myattr = attr;
|
struct apr_threadattr_t *myattr = attr;
|
||||||
|
|
||||||
pthread_attr_getschedparam(&myattr->attr, ¶m);
|
pthread_attr_getschedparam(&myattr->attr, ¶m);
|
||||||
param.sched_priority = 50;
|
param.sched_priority = 1;
|
||||||
stat = pthread_attr_setschedparam(&myattr->attr, ¶m);
|
stat = pthread_attr_setschedparam(&myattr->attr, ¶m);
|
||||||
|
|
||||||
if (stat == 0) {
|
if (stat == 0) {
|
||||||
|
@ -606,16 +606,8 @@ SWITCH_DECLARE(void) switch_core_set_globals(void)
|
|||||||
switch_assert(SWITCH_GLOBAL_dirs.temp_dir);
|
switch_assert(SWITCH_GLOBAL_dirs.temp_dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(int32_t) set_high_priority(void)
|
static int32_t set_priority(void)
|
||||||
{
|
{
|
||||||
#ifdef WIN32
|
|
||||||
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
|
|
||||||
#else
|
|
||||||
|
|
||||||
#ifdef USE_SETRLIMIT
|
|
||||||
struct rlimit lim = { RLIM_INFINITY, RLIM_INFINITY };
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_SCHED_SETSCHEDULER
|
#ifdef USE_SCHED_SETSCHEDULER
|
||||||
/*
|
/*
|
||||||
* Try to use a round-robin scheduler
|
* Try to use a round-robin scheduler
|
||||||
@ -637,13 +629,40 @@ SWITCH_DECLARE(int32_t) set_high_priority(void)
|
|||||||
*/
|
*/
|
||||||
if (setpriority(PRIO_PROCESS, getpid(), -10) < 0) {
|
if (setpriority(PRIO_PROCESS, getpid(), -10) < 0) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Could not set nice level\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Could not set nice level\n");
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (nice(-10) != -10) {
|
if (nice(-10) != -10) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Could not set nice level\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Could not set nice level\n");
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SWITCH_DECLARE(int32_t) set_normal_priority(void)
|
||||||
|
{
|
||||||
|
return set_priority();
|
||||||
|
}
|
||||||
|
|
||||||
|
SWITCH_DECLARE(int32_t) set_high_priority(void)
|
||||||
|
{
|
||||||
|
int pri;
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
|
||||||
|
#else
|
||||||
|
|
||||||
|
#ifdef USE_SETRLIMIT
|
||||||
|
struct rlimit lim = { RLIM_INFINITY, RLIM_INFINITY };
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if ((pri = set_priority())) {
|
||||||
|
return pri;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef USE_SETRLIMIT
|
#ifdef USE_SETRLIMIT
|
||||||
/*
|
/*
|
||||||
* The amount of memory which can be mlocked is limited for non-root users.
|
* The amount of memory which can be mlocked is limited for non-root users.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user