Skip to content

Commit

Permalink
Merge pull request #25 from crunchycookie/multi-node-deployment
Browse files Browse the repository at this point in the history
add integration and monitoring info
  • Loading branch information
tharindu-b-hewage authored Jan 16, 2024
2 parents 3fc9596 + f5ae2f0 commit fa9fce5
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 1 deletion.
2 changes: 1 addition & 1 deletion integration-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ compute-hosts:
- Make sure `virsh-json` is detected and identified as a command.
10. Run `./gc-emulator-service conf.yaml` to start the service (consider creating a screen `screen -S gc-emulation-scr` -> run and detach, if you wish to run as a background process - so chances for os to terminate will be limited).
9. In each compute host, copy `gc-controller` binary from the latest release. Refer core-power-mgt repo and create a config file. Make sure
core ids and sleep states are correct. Then run `./gc-controller conf.yaml` to start the service, in each compute host. Do the same in the controller node, as we use it as a compute node as well (consider creating a screen `screen -S gc-emulation-scr` -> run and detach, if you wish to run as a background process - so chances for os to terminate will be limited).
core ids and sleep states are correct. In the same repo, copy all `.sh` scripts as well. Also, install `virsh-json` via go and copy that binary to the same folder. Then run `./gc-controller conf.yaml` to start the service, in each compute host. Do the same in the controller node, as we use it as a compute node as well (consider creating a screen `screen -S gc-emulation-scr` -> run and detach, if you wish to run as a background process - so chances for os to terminate will be limited).
10. Allow controller to discover all nodes with `nova-manage cell_v2 discover_hosts --verbose`
11. Now all supplementary services are up and running. Lets deploy Openstack. In the controller node, run `./stack.sh`.
11. Once Openstack is up and running, deploy devstack in each compute node. But for them we use below `local.conf` file.
Expand Down
20 changes: 20 additions & 0 deletions performance-evaluation/dump-green-score.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import time

import requests as rq
import sys
import csv

# 1: local node ip
# 2: dump csv file.
print('ip:', sys.argv[1])
print('dump file:', sys.argv[2])
print('begin dumping green-score...')
while True:
response = rq.get(url='http://' + sys.argv[1] + ':3000/gc-controller/dev/green-score').json()
print('received response:', response)
# fields = ['timestamp', 'gs']
with open(sys.argv[2], 'a') as f:
writer = csv.writer(f)
writer.writerow([time.time(), response['green-score']])

time.sleep(5)
40 changes: 40 additions & 0 deletions performance-evaluation/monitoring-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#### Monitoring guide

Upon successful integration, the system is ready to be monitored for its performance.

We measure followings.

System metrics,

- Green score
- Power consumption

Application metrics,

- `nLT`: Normalized lifetime
- Eviction counts

##### Setting up

In each computing node,

1. Green Score
1. `core-power-mgt` service expose an endpoint to obtain green score at a given time: `/gc-controller/dev/green-score`
2. In a new linux screen session,
1. Run `python3 [dump-green-score.py](dump-green-score.py) <node-ip> <path-to-a-csv-file>`
2. csv file should be created and its column names are `timestamp` and `g-score`
3. The above script poll endpoint, dumps green score as a new row in the csv file.
4. detach from the screen session
7. Power consumption
1. In a new linux screen session,
1. Run `sudo turbostat --quiet -out reports/power-stats.csv`. This will keep dumping power stats to the csv file.
2. detach from the session.

Application metrics are tracked and logged by the vm arrival trace generation.

##### Post process

In each node, collect power stats and green score csv files. These data needs to be processed and system behaviour
can be analyzed.

Once collected, kill all monitoring screen sessions.

0 comments on commit fa9fce5

Please sign in to comment.