mirror of https://github.com/xemu-project/xemu.git
scripts/kvm/kvm_stat: Set sensible no. files rlimit
As num cpus * 1000 is NOT a sensible rlimit, we need to calculate a more accurate rlimit. The number of open files is directly dependent on the cpu count and on the number of trace points per cpu. A additional constant works as a buffer for files that are needed by python or do get opened when the script runs. Hence we have: cpus * traces + constant Reviewed-by: Jason J. Herne <jjherne@linux.vnet.ibm.com> Signed-off-by: Janosch Frank <frankja@linux.vnet.ibm.com> Message-Id: <1452525484-32309-15-git-send-email-frankja@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
400b3cb519
commit
392a7fa3ca
|
@ -395,8 +395,15 @@ class TracepointProvider(object):
|
||||||
def _setup(self, _fields):
|
def _setup(self, _fields):
|
||||||
self._fields = _fields
|
self._fields = _fields
|
||||||
cpus = self._online_cpus()
|
cpus = self._online_cpus()
|
||||||
nfiles = len(cpus) * 1000
|
|
||||||
resource.setrlimit(resource.RLIMIT_NOFILE, (nfiles, nfiles))
|
# The constant is needed as a buffer for python libs, std
|
||||||
|
# streams and other files that the script opens.
|
||||||
|
rlimit = len(cpus) * len(_fields) + 50
|
||||||
|
try:
|
||||||
|
resource.setrlimit(resource.RLIMIT_NOFILE, (rlimit, rlimit))
|
||||||
|
except ValueError:
|
||||||
|
sys.exit("NOFILE rlimit could not be raised to {0}".format(rlimit))
|
||||||
|
|
||||||
events = []
|
events = []
|
||||||
self.group_leaders = []
|
self.group_leaders = []
|
||||||
for cpu in cpus:
|
for cpu in cpus:
|
||||||
|
|
Loading…
Reference in New Issue