https://github.com/ankitbhrdwj/sandstorm-simulator
A simulator to measure domain switch latency for a large number of isolated domains(processes).
https://github.com/ankitbhrdwj/sandstorm-simulator
linux measurements rust
Last synced: 3 months ago
JSON representation
A simulator to measure domain switch latency for a large number of isolated domains(processes).
- Host: GitHub
- URL: https://github.com/ankitbhrdwj/sandstorm-simulator
- Owner: ankitbhrdwj
- Created: 2019-10-04T17:42:55.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-07-03T00:16:34.000Z (over 4 years ago)
- Last Synced: 2025-03-25T23:20:30.999Z (6 months ago)
- Topics: linux, measurements, rust
- Language: Rust
- Homepage: https://www.overleaf.com/read/tcxqmbctvbbp
- Size: 5.27 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sandstorm-simulator 
The project aims to find out the effect of **preemption** and **context-switch** on **throughput** and **latency** for a large number of isolated domains(processes). The operating system overhead will increase sharply with the increase in the number of domains, especially when the total number of active domains are more than the number of cores.
The `server` forks a large number of processes(based on the configuration parameter), and `client` will randomly generate the requests for these processes.
## How to Run
1) Clone the repository.
```
git clone https://github.com/ankit-iitb/os_project
cd os_project
```2) Install Rust
```
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustup default nightly
```
3) Build the synthetic client-server application.
```
make
```4) Run the synthetic application with a client and server. The client sends requests
to the server, which transmits the payload of the same request in the response.On the server:
```
cd linux/server/
./target/release/server
```On the client:
```
cd linux/client/
./target/release/client
```## Configuration Parameters
To update the configuration parameters, change `linux/server/server.toml` on the server side and `linux/client/client.toml` on the client side.Change `server_ip` and `num_process` in server.toml and `server_ip`, `num_tenants`, and `req_rate` in client.toml.