отдавать нужно столько ядер, сколько реально может "освоить" виртуальная машина. бессмысленно выделять 8 ядер на виртуалку, которая крутит приложения, оптимизированные только для двух. в вашем случае, очевидно, речь идёт про mssql или аналогичную промышленную субд, которая умеет грамотно работать в многоядерной среде, поэтому выделить можно (и нужно) все доступные ядра.