31 lines
984 B
Ruby
Executable File
31 lines
984 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
# frozen_string_literal: true
|
|
|
|
require_relative "../../common/lib/util"
|
|
|
|
# Setup system hugepages
|
|
meminfo = File.read("/proc/meminfo")
|
|
hugepage_size_kib = Integer(meminfo[/^Hugepagesize:\s*(\d+)\s*kB/, 1], 10)
|
|
memory_total_kib = Integer(meminfo[/^MemTotal:\s*(\d+)\s*kB/, 1], 10)
|
|
|
|
target_hugepages_size_kib = memory_total_kib / 4
|
|
target_hugepages = target_hugepages_size_kib / hugepage_size_kib
|
|
|
|
r "echo 'vm.nr_hugepages = #{target_hugepages}' | sudo tee /etc/sysctl.d/10-hugepages.conf"
|
|
|
|
r "sync"
|
|
r "echo 3 | sudo tee /proc/sys/vm/drop_caches"
|
|
r "echo 1 | sudo tee /proc/sys/vm/compact_memory"
|
|
r "sudo sysctl --system"
|
|
|
|
meminfo = File.read("/proc/meminfo")
|
|
allocated_hugepages = Integer(meminfo[/^HugePages_Total:\s*(\d+)/, 1], 10)
|
|
|
|
if allocated_hugepages < target_hugepages
|
|
puts "Failed to allocate #{target_hugepages} hugepages. Only #{allocated_hugepages} were allocated."
|
|
exit 1
|
|
else
|
|
puts "Successfully allocated #{allocated_hugepages} hugepages."
|
|
end
|