What is background workers? redis socketio? gunicorn workers?

I have been trying to figure out what these items do? Can someone tell me

I know that they are used to increase the number of background tasks that you can do at any one time. But does increasing them also put additional strain on the cpu? How many should a site have if there is several people on erpnext at the same time doing stuff constantly.

Should you have 1 background and gunicorn worker per employee or user of the system? what is the optimal rate?

What have you found from search?

And respond to these with your learning
ERPNext Freezes up and then shuts down after a few hours - #7 by clarkej

Sorry! We will be back soon. on main domain - #4 by buildit