Che: What should I do to support hundreds of workspace working properly at the same time.

Created on 1 Sep 2016  ·  3Comments  ·  Source: eclipse/che

As I know, when I start a workspace, che server launch a new machine and will take at least 1G RAM.
If I use che as a server to support an exam for hundreds of people, I need hundreds of workspaces to work at the same time. Does it mean that the server needs at least hundreds of GBs RAM?

I have tried for this. My server has 32GB RAM and can only support about 20 workspaces to run at the same time.

I want to know what I should do to support 100 workspaces running at the same time without expanding my server. Or is che just not designed for so many people working at the same time on a machine?

kinquestion

Most helpful comment

@luckymore0520 - If you are looking to make better use of the RAM that is available to you, you have a few choices:
1: First, you can share workspaces. The workspaces have a runtime that has to be on the entire time the workspace is running. Kind of like a VM. But you can have many projects in a single workspace, and they would share that runtime. In that scenario, each user in the workspace, would share all of the projects with each other. Maybe not the best for exams :)

2: Second, if you need each user to have a workspace that is isolated from other users, then you probably need to launch each user as a separate Che - but then each Che takes up some RAM and then each workspace for each user eats up some RAM as well. You will then need to have enough RAM to support running all of those systems simultaneously. You will want to look into the docs on a new feature called Chedir, which lets you have a command-line workflow for managing this that you could give to your students. It's a new feature that we haven't started marketing yet. It's like Vagrant but for workspaces.

3: You can consider Codenvy, which is free for your particular use case. Codenvy has a capability called Factories, where you generate the workspace template / stack, and then we convert it into a URL. You can then give the URL out to your students, and each click of the URL creates a separate, fully isolated workspace. The students can then snapshot their contents and send back to you. This is in our hosted system, or one that you run yourself - but you'd still have to figure out the RAM issue.

All 3 comments

@luckymore0520 you will need a scalable cloud version of Che which is Codenvy On Prem. You can learn more here http://codenvy.readme.io/

@TylerJewell may also comment on our plans to bring swarm to Che which allows scaling

@luckymore0520 - If you are looking to make better use of the RAM that is available to you, you have a few choices:
1: First, you can share workspaces. The workspaces have a runtime that has to be on the entire time the workspace is running. Kind of like a VM. But you can have many projects in a single workspace, and they would share that runtime. In that scenario, each user in the workspace, would share all of the projects with each other. Maybe not the best for exams :)

2: Second, if you need each user to have a workspace that is isolated from other users, then you probably need to launch each user as a separate Che - but then each Che takes up some RAM and then each workspace for each user eats up some RAM as well. You will then need to have enough RAM to support running all of those systems simultaneously. You will want to look into the docs on a new feature called Chedir, which lets you have a command-line workflow for managing this that you could give to your students. It's a new feature that we haven't started marketing yet. It's like Vagrant but for workspaces.

3: You can consider Codenvy, which is free for your particular use case. Codenvy has a capability called Factories, where you generate the workspace template / stack, and then we convert it into a URL. You can then give the URL out to your students, and each click of the URL creates a separate, fully isolated workspace. The students can then snapshot their contents and send back to you. This is in our hosted system, or one that you run yourself - but you'd still have to figure out the RAM issue.

Thank you for your reply!
I will discuss with my tutor and maybe we'll try to use Codenvy~

Was this page helpful?
0 / 5 - 0 ratings