На прекрасном, понятном Python:
#!/usr/bin/env python
with open('unix_StackExchange_question.txt') as f:
files = f.read()
files = files.split('\n')
group = list()
group_size = 0
n = 0
for f in files:
pair = f.split()
if not pair:
break
size = int(pair[0])
name = pair[1]
group_size += size
group.append(f)
# assume the files are in ascending order as per the op's question
if group_size + size >= 5000000:
n += 1
group_size = 0
print 'file %s:\n\t' % n +'\n\t'.join(x for x in group)
group = list()
Просто сохраните как 5GBfiles.py
и chmod + x 5GBfiles.py
и готово!
Если вы видите, что «бафф/кеш» составляет 18 ГБ, это более 50 % вашей реальной памяти. Обычно это значение составляет 15% вашей памяти для дополнительных или 20%, зависящих от ваших приложений.
Если вашей машине в какой-то момент понадобится больше, сначала будет использоваться «бафф/кеш»
Total Memory --> 31GB
Real Used --> 12GB
15 % of total Memory for cache --> 5GB
Real Used + cache memory = 12GB + 5GB
Потребляемая память хоста-Объем машинной памяти, используемой на хосте. Потребляемая память включает в себя память, используемую сервисной консолью, VMkernel, службами vSphere, а также общие метрики потребления для всех запущенных виртуальных машин.
Активная гостевая память-Объем гостевой «физической» памяти, активно используемой.
Я думаю, что вам нужно только 17 ГБ!! Если не хотите так сильно настраивать можно поставить 20гб
Если хотите, будьте более точны в своем решении. Я рекомендую использовать команду vmstat каждую минуту в течение недели или одного дня при высокой активности системы.
Эта статья может вам помочь :https://www.tecmint.com/linux-performance-monitoring-with-vmstat-and-iostat-commands/