Шаг 1. Объём доступной оперативной памяти
По умолчанию виртуальная машина Vagrant / VirtualBox для Discourse настроена всего на 1 Гб оперативной памяти.
Производительность Discourse можно увеличить простым увеличением объёма доступной виртуальная машине оперативной памяти.
Объём оперативной памяти для виртуальной машины Vagrant / VirtualBox задаётся в файле Vagrantfile
в корневой папке дистрибутива Discourse:
v.customize ["modifyvm", :id, "--memory", [ENV['DISCOURSE_VM_MEM'].to_i, 1024].max]
1024 — это размер оперативной памяти в мегабайтах, тот самый 1 Гб по умолчанию.
У меня на компьютере 11 Гб оперативной памяти, и поэтому я выделил для Vagrant / VirtualBox 5 Гб:
v.customize ["modifyvm", :id, "--memory", [ENV['DISCOURSE_VM_MEM'].to_i, 5120].max]
Шаг 2. Количество доступных ядер процессора
Количество доступных виртуальной машине ядер процессора настраивается в Vagrantfile параметром cpu_count
:
# Who has a single core cpu these days anyways?
cpu_count = 2
# Determine the available cores in host system.
# This mostly helps on linux, but it couldn't hurt on MacOSX.
if RUBY_PLATFORM =~ /linux/
cpu_count = `nproc`.to_i
elsif RUBY_PLATFORM =~ /darwin/
cpu_count = `sysctl -n hw.ncpu`.to_i
end
# Assign additional cores to the guest OS.
v.customize ["modifyvm", :id, "--cpus", cpu_count]
Как можно увидеть из этого кода, при настройках по умолчанию Discourse под Windows будет использовать 2 ядра процессора.
Обратите внимание, что под Linux и MacOS этот скрипт сам определяет количество имеющихся на компьютере ядер процессора и задействует их все, а вот для Windows он так не делает.
Поэтому настройте параметр cpu_count вручную. У меня на компьютере 4 ядра процессора, поэтому я написал так:
cpu_count = 4
Шаг 3.
Если виртуальная машина уже запущена, то настройки Vagrantfile применятся только после её перезагрузки:
vagrant reload