mirror of
https://github.com/marcel-dempers/docker-development-youtube-series.git
synced 2025-06-06 17:01:30 +00:00
course updates
This commit is contained in:
parent
2a173123bc
commit
e5ccec3c0a
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to simulate CPU usage
|
||||||
|
simulate_cpu_usage() {
|
||||||
|
periodInSeconds=$1
|
||||||
|
core=$2
|
||||||
|
echo "Simulating CPU usage for $periodInSeconds seconds on core $core..."
|
||||||
|
end=$((SECONDS + $periodInSeconds))
|
||||||
|
while [ $SECONDS -lt $end ]; do
|
||||||
|
# Perform a CPU-intensive task directly in the script
|
||||||
|
for i in {1..10000}; do
|
||||||
|
: # No-op command, just to keep the CPU busy
|
||||||
|
done
|
||||||
|
done
|
||||||
|
echo "CPU usage simulation complete on core $core."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Number of CPU cores
|
||||||
|
num_cores=$(nproc)
|
||||||
|
|
||||||
|
# Duration for the simulation
|
||||||
|
duration=500
|
||||||
|
|
||||||
|
# Run the function in the background for each core
|
||||||
|
for core in $(seq 1 $num_cores); do
|
||||||
|
simulate_cpu_usage $duration $core &
|
||||||
|
done
|
||||||
|
|
||||||
|
# Wait for all background jobs to complete
|
||||||
|
wait
|
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to simulate CPU usage
|
||||||
|
simulate_cpu_usage() {
|
||||||
|
periodInSeconds=$1
|
||||||
|
echo "Simulating CPU usage for $periodInSeconds seconds..."
|
||||||
|
end=$((SECONDS + $periodInSeconds))
|
||||||
|
while [ $SECONDS -lt $end ]; do
|
||||||
|
# Perform a CPU-intensive task directly in the script
|
||||||
|
for i in {1..10000}; do
|
||||||
|
: # No-op command, just to keep the CPU busy
|
||||||
|
done
|
||||||
|
done
|
||||||
|
echo "CPU usage simulation complete."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Call the function with the provided duration
|
||||||
|
simulate_cpu_usage 500
|
||||||
|
|
||||||
|
|
||||||
|
#ps -o pid,ppid,cmd --forest -p <PID>
|
@ -115,13 +115,13 @@ We can take a look at two bash scripts that I have written that demonstrates sin
|
|||||||
|
|
||||||
#### example: single threaded code
|
#### example: single threaded code
|
||||||
|
|
||||||
If we execute `./singlethread-cpu.sh`, we will notice that only one core of the CPU is busy at a time. </br>
|
If we execute [./singlethread-cpu.sh](.test/singlethread-cpu.sh), we will notice that only one core of the CPU is busy at a time. </br>
|
||||||
Now because we execute a loop, each iteration of that loop will run on a different core. </br>
|
Now because we execute a loop, each iteration of that loop will run on a different core. </br>
|
||||||
Bash itself is single threaded, so this script needs to be optimized if we want to make use of all available CPU cores. </br>
|
Bash itself is single threaded, so this script needs to be optimized if we want to make use of all available CPU cores. </br>
|
||||||
|
|
||||||
#### example: multi threaded code
|
#### example: multi threaded code
|
||||||
|
|
||||||
If we execute `./multithread-cpu.sh`, we will notice all CPU cores get busy. </br>
|
If we execute [./multithread-cpu.sh](.test/multithread-cpu.sh), we will notice all CPU cores get busy. </br>
|
||||||
This is because in this script, we read the number of available cores with the `nproc` command. </br>
|
This is because in this script, we read the number of available cores with the `nproc` command. </br>
|
||||||
Then we loop the number of available cores and execute our `simulate_cpu_usage()` function. </br>
|
Then we loop the number of available cores and execute our `simulate_cpu_usage()` function. </br>
|
||||||
At this point it would technically still be single threaded, because it's still a loop and does not create more threads or processes. </br> To get around this we use a special character in bash called `&` at the end of our function. </br>
|
At this point it would technically still be single threaded, because it's still a loop and does not create more threads or processes. </br> To get around this we use a special character in bash called `&` at the end of our function. </br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user