My problem - I run a virtual world grid based on OpenSim (an open source implementation of the Second Life server) on Devuan ASCII. A grid like this is made up of 256 x 256 meter bits of land called a sim or a region. There are also bigger ones made of multiples of these 256 x 256 meter ones. Each of these sims runs as it's own process (well with lots of child processes for each one). Some of these sims are basically private property, owned by other members of the grid, where they can do what they want.
Sometimes these private sim owners just go crazy filling it up with stuff and scripts to run the stuff. This might mean their sim starts to use way to much CPU or RAM. I have had one of these recently soak up so much CPU and RAM that it crashed the entire grid. Three times. The owner has cooperated and reduced things, but he was bitching the entire way. So I want to limit things so this will never happen again. Say limit each sim to 15% of CPU and 15% of RAM. Everything runs as the opensim user. Possible solutions - I used to use monit to just restart sims that went over the limit, but that wont help if it went over the limit coz they put too much stuff in it. That was more to catch runaway sims, coz OpenSim is crap code. I think ulimit will just shut things down when they go over the limits. I don't want that, I want to limit CPU usage, so slowing things down. cpulimit looks like it might work. cputool I think is just a wrapper around cpulimit. cgroups might be a better idea, but seems as if most of the web pages talking about it assume you are using systemd. Not sure what the result of going over the RAM limit is, could get messy. Eventually I'll rewrite OpenSim, I've started already, but it's a big project simulating a world, so that's slow going. The rewrite will include monitoring, and sending messages "Whoa, slow down, you are approaching the limits" or something, before refusing to let them add more stuff. But for now I just want something I can do quickly to limit things without breaking things. Anyone got better suggestions, or experience using these tools? -- A big old stinking pile of genius that no one wants coz there are too many silver coated monkeys in the world. _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng