mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
In step_init_3() we try to apply provided or calculated earlier haproxy maxsock and memmax limits. Let's encapsulate these code blocks in dedicated functions: apply_nofile_limit() and apply_memory_limit() and let's move them into limits.c. Limits.c gathers now all the logic for calculating and setting system limits in dependency of the provided configuration.
46 lines
1.1 KiB
C
46 lines
1.1 KiB
C
/*
|
|
* Handlers for process resources limits.
|
|
*
|
|
* SPDX-License-Identifier: LGPL-2.1-or-later.
|
|
*
|
|
*/
|
|
|
|
#ifndef _HAPROXY_LIMITS_H
|
|
#define _HAPROXY_LIMITS_H
|
|
#include <sys/resource.h>
|
|
#include <haproxy/compat.h>
|
|
|
|
extern unsigned int rlim_fd_cur_at_boot;
|
|
extern unsigned int rlim_fd_max_at_boot;
|
|
|
|
/* returns 0 if the given limit was not set (reported as infinity), otherwise
|
|
* returns the limit, useful to print limit values as strings in err messages
|
|
* via LIM2A macros.
|
|
*/
|
|
static inline ulong normalize_rlim(ulong rlim)
|
|
{
|
|
if (rlim == RLIM_INFINITY)
|
|
return 0;
|
|
|
|
return rlim;
|
|
}
|
|
|
|
/* handlers to compute internal process limits, if they are not provided via
|
|
* cmd line or via configuration file.
|
|
*/
|
|
int compute_ideal_maxpipes();
|
|
int compute_ideal_maxsock(int maxconn);
|
|
int check_if_maxsock_permitted(int maxsock);
|
|
|
|
/* handlers to manipulate system resources limits granted by OS to process and
|
|
* to tie them up with the internal process limits
|
|
*/
|
|
int raise_rlim_nofile(struct rlimit *old_limit, struct rlimit *new_limit);
|
|
|
|
void set_global_maxconn(void);
|
|
void apply_nofile_limit(void);
|
|
void apply_memory_limit(void);
|
|
|
|
|
|
#endif /* _HAPROXY_LIMITS_H */
|