Skip to content

Atomic: Resource Controls

andreasn edited this page Jan 15, 2015 · 10 revisions

Notes

  • Need per-service CPU, blockio, memory resource controls
  • Can we do data volume quotas or per-container size disk quotas?
  • We want alerting/highlighting of services with problematic use of resources.

Tasks:

  • Manage container storage quotas
  • Control system allocation

Stories

Write user stories and work flows to drive design.

User stories:

Sarah works at a company where they have a machine running Atomic and 5 main services served by containers. The five main services are: Database server, AD server, Print server, Web server and Owncloud. Owncloud is currently being evaluated and tested in the company. Since all 5 containers are running on the same server, their resources needs to be restricted in order to not hurt each other if one of the services gets overloaded. The web server and the database have the most traffic to them, but it varies a lot over the day. She also needs to be able to see the allocated resources of the containers and get a warning if any of them is hitting their cap of memory, cpu, network or storage and act upon that. Either by buying a new cpu/a second network card/more memory/a bigger hard drive, or by increasing the containers share compared to the other services.

David is running a web server for some of his customers. Each customer has it's own container with a dedicated CMS, storage etc. One of his customers is a photo agency and is running out of space due to the massive amount of photos they have uploaded and asks David to allocate more space for their container.

Workflows:

Sarah:

  • The company have just decided to move Owncloud from internal testing to availability to everyone in the company. This suddenly puts a lot more pressure on the service and it's constantly starving for more resources. One of her colleagues complains that the Owncloud seems to run a bit slow.
  • She runs a performance test on Owncloud and verifies it's a memory issue.
  • Sarah orders some more RAM and puts it in the server late at night when the traffic to their server is low.
  • She then logs in to the server via Cockpit. She ensures Cockpit shows the new total RAM size.
  • She increases the RAM quota for the Owncloud container.
  • She runs the performance test again and the numbers look better now.
  • The next day Sarah asks her colleague if Owncloud is working better today, and he replies that indeed it seems a lot faster now.

David:

  • David does a call with the photo agency and they agree that he'll increase their storage quota from the regular 10 GB that he allocates to his customers to 100 GB for a increased monthly fee.
  • After logging in to the server via Cockpit, he goes to check how much disk in total. He identifies the 1 TB disk. He sees that there is at least 180 GB free. This should allow him to increase the quota for the photo agency with 90 more GB and still allow for several customers to fully fill their quota without him getting into trouble.
  • He increases the value from 10 GB to 100 GB on the customers container.
  • He verifies the quota is now 100 GB.
  • He calls back to the customer telling them that their storage is now 100 GB and that they can get in touch with him again at any point if they ever need more space. They thank him very much for getting this fixed so soon.

Feedback

Please give feedback on the above!

Clone this wiki locally