diff --git a/benchmarks/sleeping/Makefile b/benchmarks/sleeping/Makefile index 3850bcc14..b6cb29a38 100755 --- a/benchmarks/sleeping/Makefile +++ b/benchmarks/sleeping/Makefile @@ -33,7 +33,7 @@ all: $(ALL_IMAGES) sleeping-go-image: docker/Dockerfile go/server.go DOCKER_BUILDKIT=1 docker buildx build \ - --tag kt05docker/sleeping-go:latest \ + --tag vhiveease/sleeping-go:latest \ --target sleepingGo \ -f docker/Dockerfile \ $(ROOT) --load @@ -41,13 +41,13 @@ sleeping-go-image: docker/Dockerfile go/server.go ## Push images push-%: %-image - docker push docker.io/kt05docker/$(subst push-,,$@):latest + docker push docker.io/vhiveease/$(subst push-,,$@):latest push: $(addprefix push-, $(FUNCTIONS)) ## Pull images from docker hub pull-%: - docker pull docker.io/kt05docker/$(subst pull-,,$@):latest + docker pull docker.io/vhiveease/$(subst pull-,,$@):latest pull: $(addprefix pull-, $(FUNCTIONS)) \ No newline at end of file diff --git a/benchmarks/sleeping/README.md b/benchmarks/sleeping/README.md index 7e745b92f..a7d62781e 100644 --- a/benchmarks/sleeping/README.md +++ b/benchmarks/sleeping/README.md @@ -1,3 +1,11 @@ +# Sleeping benchmark + +The sleeping benchmark simulates a simple I/O bounded task by sleeping for 50 ms. + +This benchmark can be used to verify that increasing in cpu frequency would not significantly affect the latency of I/O bounded workload. + +The functionality is implemented in golang. + ## Running this benchmark (using knative) 1. Build or pull the function images using `make all` or `make pull`. diff --git a/benchmarks/sleeping/go/server.go b/benchmarks/sleeping/go/server.go index 5289f509a..32562d195 100644 --- a/benchmarks/sleeping/go/server.go +++ b/benchmarks/sleeping/go/server.go @@ -40,6 +40,7 @@ import ( var ( zipkin = flag.String("zipkin", "http://localhost:9411/api/v2/spans", "zipkin url") address = flag.String("addr", "0.0.0.0:50051", "Address:Port the grpc server is listening to") + delay = flag.Int("sleep-delay", 50, "Delay the function sleeps before sending the response (in milliseconds)") ) // server is used to implement aes.AesServer. @@ -50,10 +51,9 @@ type server struct { // ShowEncryption implements aes.AesServer func (s *server) ShowEncryption(ctx context.Context, in *pb.PlainTextMessage) (*pb.ReturnEncryptionInfo, error) { startTime := time.Now() - for i := 0; i < 1; i++ { - time.Sleep(50 * time.Millisecond) // Simulate an I/O-bound task by sleeping - } + time.Sleep(time.Duration(*delay)* time.Millisecond) // Simulate an I/O-bound task by sleeping elapsedTime := time.Since(startTime) + return &pb.ReturnEncryptionInfo{EncryptionInfo: elapsedTime.String()}, nil } @@ -65,6 +65,7 @@ func main() { if err != nil { log.Warn(err) } + defer shutdown() } diff --git a/benchmarks/sleeping/yamls/docker-compose/dc-sleeping-go-tracing.yaml b/benchmarks/sleeping/yamls/docker-compose/dc-sleeping-go-tracing.yaml index 5d7d39152..bac0bea12 100644 --- a/benchmarks/sleeping/yamls/docker-compose/dc-sleeping-go-tracing.yaml +++ b/benchmarks/sleeping/yamls/docker-compose/dc-sleeping-go-tracing.yaml @@ -23,7 +23,7 @@ version: "3.9" services: sleeping-go: - image: kt05docker/sleeping-go:latest + image: vhiveease/sleeping-go:latest container_name: sleeping-go entrypoint: - /app/server diff --git a/benchmarks/sleeping/yamls/docker-compose/dc-sleeping-go.yaml b/benchmarks/sleeping/yamls/docker-compose/dc-sleeping-go.yaml index 77281604b..c9a453aa9 100644 --- a/benchmarks/sleeping/yamls/docker-compose/dc-sleeping-go.yaml +++ b/benchmarks/sleeping/yamls/docker-compose/dc-sleeping-go.yaml @@ -23,7 +23,7 @@ version: "3.9" services: sleeping-go: - image: kt05docker/sleeping-go:latest + image: vhiveease/sleeping-go:latest container_name: sleeping-go entrypoint: - /app/server diff --git a/benchmarks/sleeping/yamls/knative/kn-sleeping-go-tracing.yaml b/benchmarks/sleeping/yamls/knative/kn-sleeping-go-tracing.yaml index 06a4166fa..64e7a9848 100644 --- a/benchmarks/sleeping/yamls/knative/kn-sleeping-go-tracing.yaml +++ b/benchmarks/sleeping/yamls/knative/kn-sleeping-go-tracing.yaml @@ -42,7 +42,7 @@ spec: - --function-endpoint-url=0.0.0.0 - --function-endpoint-port=50051 - --function-name=aes-go - - image: docker.io/kt05docker/sleeping-go:latest + - image: docker.io/vhiveease/sleeping-go:latest env: - name: ENABLE_TRACING value: "true" diff --git a/benchmarks/sleeping/yamls/knative/kn-sleeping-go.yaml b/benchmarks/sleeping/yamls/knative/kn-sleeping-go.yaml index cb937fd26..9a00fbfb9 100644 --- a/benchmarks/sleeping/yamls/knative/kn-sleeping-go.yaml +++ b/benchmarks/sleeping/yamls/knative/kn-sleeping-go.yaml @@ -37,6 +37,6 @@ spec: - --function-endpoint-url=0.0.0.0 - --function-endpoint-port=50051 - --function-name=aes-go - - image: docker.io/kt05docker/sleeping-go:latest + - image: docker.io/vhiveease/sleeping-go:latest args: - --addr=0.0.0.0:50051 \ No newline at end of file diff --git a/benchmarks/spinning/Makefile b/benchmarks/spinning/Makefile index ae8c1dcd2..3e7d153cb 100755 --- a/benchmarks/spinning/Makefile +++ b/benchmarks/spinning/Makefile @@ -33,19 +33,19 @@ all: $(ALL_IMAGES) spinning-go-image: docker/Dockerfile go/server.go DOCKER_BUILDKIT=1 docker buildx build \ - --tag kt05docker/spinning-go:latest \ + --tag vhiveease/spinning-go:latest \ --target spinningGo \ -f docker/Dockerfile \ $(ROOT) --load ## Push images push-%: %-image - docker push docker.io/kt05docker/$(subst push-,,$@):latest + docker push docker.io/vhiveease/$(subst push-,,$@):latest push: $(addprefix push-, $(FUNCTIONS)) ## Pull images from docker hub pull-%: - docker pull docker.io/kt05docker/$(subst pull-,,$@):latest + docker pull docker.io/vhiveease/$(subst pull-,,$@):latest pull: $(addprefix pull-, $(FUNCTIONS)) \ No newline at end of file diff --git a/benchmarks/spinning/README.md b/benchmarks/spinning/README.md index 0fdad3282..ea6b7dc2a 100644 --- a/benchmarks/spinning/README.md +++ b/benchmarks/spinning/README.md @@ -1,3 +1,11 @@ +# Spinning benchmark + +The spinning benchmark simulates a simple cpu bounded bounded task by allowing multiplication for 30000000 iterations. + +This benchmark can be used to verify that increasing in cpu frequency significantly decrease the latency of CPU-bounded workload. + +The functionality is implemented in golang. + ## Running this benchmark (using knative) 1. Build or pull the function images using `make all` or `make pull`. @@ -9,7 +17,7 @@ ### Invoke once 4. In a new terminal, invoke the interface function with test-client. ```bash - ./test-client --addr spinning-go.default.192.168.1.240.sslip.io:80 --name "Example text for Sleeping" + ./test-client --addr spinning-go.default.192.168.1.240.sslip.io:80 --name "Example text for Spinning" ``` ### Invoke multiple times 4. Run the invoker diff --git a/benchmarks/spinning/yamls/docker-compose/dc-spinning-go-tracing.yaml b/benchmarks/spinning/yamls/docker-compose/dc-spinning-go-tracing.yaml index 385f20bbe..4888485b2 100644 --- a/benchmarks/spinning/yamls/docker-compose/dc-spinning-go-tracing.yaml +++ b/benchmarks/spinning/yamls/docker-compose/dc-spinning-go-tracing.yaml @@ -23,7 +23,7 @@ version: "3.9" services: spinning-go: - image: kt05docker/spinning-go:latest + image: vhiveease/spinning-go:latest container_name: spinning-go entrypoint: - /app/server diff --git a/benchmarks/spinning/yamls/docker-compose/dc-spinning-go.yaml b/benchmarks/spinning/yamls/docker-compose/dc-spinning-go.yaml index 184211b82..1c7870c0a 100644 --- a/benchmarks/spinning/yamls/docker-compose/dc-spinning-go.yaml +++ b/benchmarks/spinning/yamls/docker-compose/dc-spinning-go.yaml @@ -23,7 +23,7 @@ version: "3.9" services: spinning-go: - image: kt05docker/spinning-go:latest + image: vhiveease/spinning-go:latest container_name: spinning-go entrypoint: - /app/server diff --git a/benchmarks/spinning/yamls/knative/kn-spinning-go-tracing.yaml b/benchmarks/spinning/yamls/knative/kn-spinning-go-tracing.yaml index 5657d8919..e15ddb4dc 100644 --- a/benchmarks/spinning/yamls/knative/kn-spinning-go-tracing.yaml +++ b/benchmarks/spinning/yamls/knative/kn-spinning-go-tracing.yaml @@ -42,7 +42,7 @@ spec: - --function-endpoint-url=0.0.0.0 - --function-endpoint-port=50051 - --function-name=aes-go - - image: docker.io/kt05docker/spinning-go:latest + - image: docker.io/vhiveease/spinning-go:latest env: - name: ENABLE_TRACING value: "true" diff --git a/benchmarks/spinning/yamls/knative/kn-spinning-go.yaml b/benchmarks/spinning/yamls/knative/kn-spinning-go.yaml index 81f4503c8..ae41f62e9 100644 --- a/benchmarks/spinning/yamls/knative/kn-spinning-go.yaml +++ b/benchmarks/spinning/yamls/knative/kn-spinning-go.yaml @@ -38,7 +38,7 @@ spec: - --function-endpoint-url=0.0.0.0 - --function-endpoint-port=50051 - --function-name=aes-go - - image: docker.io/kt05docker/spinning-go:latest + - image: docker.io/vhiveease/spinning-go:latest args: - --addr=0.0.0.0:50051 nodeSelector: