Goblins are carnivorous, which means that their population food ratio is dependent on livestock like you point out & the hunting profession which means that they need quite a lot of competentcy with weapons and abundant wildlife around them to stay alive and not starve.
How much of this is represented i dont know, in my mods (below is a exerpt of code i use to keep beak dogs & trolls in check) i use the [ANIMAL] code to bypass use of [COMMON_DOMESTIC] so that they aren't infinitely respawning and entirely locked to the population of the site. You could technically kill goblins in a tundra with very poor local animal populations by stealing all their livestock by stealth and whittling away their trolls.
[PET_EXOTIC] // on trolls, does affect the game but not as much as you would think, [ALWAYS_PRESENT] will even let tame trolls be imported by traders if appropriate. Goes in creature standard.txt file with regular troll raws replacing [COMMON_DOMESTIC]
[ANIMAL]
[ANIMAL_TOKEN:TROLL]
[ANIMAL_ALWAYS_PRESENT]
Theres some other things you can do to stop civs picking up trolls in world generation such as making banned creature classes, etc [EVIL_PET] across general alignment lines.
If the troll population gets too high in worldgen while playing as non-goblins, and subsequently with some effort you can remove trolls from the goblin sites entirely until some more & new goblin sites are founded by repeatedly hitting a saturated site with raids. I run my goblin fortresses ingame with goblins needing to eat but not drink and it runs fine by my reckoning.
EI - i sort of wish Trolls had inedible meat, as they give a lot when you actually manage to slaughter a adult one, but its too much of a pain to add butchery specifics, especially when you may want fur & bones from them atleast.