text done for real

This commit is contained in:
Torma Kristóf 2019-12-06 00:35:29 +01:00
parent b15d6130d6
commit 649b5ec6ab
Signed by: tormakris
GPG Key ID: DC83C4F2C41B1047
2 changed files with 72 additions and 60 deletions

View File

@ -10,146 +10,146 @@
@misc{dockervirt, @misc{dockervirt,
author = {Nick Janetakis}, author = {Nick Janetakis},
howpublished = {https://nickjanetakis.com/blog/comparing-virtual-machines-vs-docker-containers}, howpublished = {\url{https://nickjanetakis.com/blog/comparing-virtual-machines-vs-docker-containers}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Comparing Virtual Machines vs Docker Containers} title = {Comparing Virtual Machines vs Docker Containers}
} }
@misc{docker-overview, @misc{docker-overview,
howpublished = {https://docs.docker.com/engine/docker-overview/}, howpublished = {\url{https://docs.docker.com/engine/docker-overview/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Docker overview} title = {Docker overview}
} }
@misc{linux-namespaces, @misc{linux-namespaces,
howpublished = {http://man7.org/linux/man-pages/man7/namespaces.7.html}, howpublished = {\url{http://man7.org/linux/man-pages/man7/namespaces.7.html}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {namespaces - overview of Linux namespaces} title = {namespaces - overview of Linux namespaces}
} }
@misc{cgroups, @misc{cgroups,
howpublished = {https://access.redhat.com/documentation/en-us/red\_hat\_enterprise\_linux/6/html/resource\_management\_guide/ch01}, howpublished = {\url{https://access.redhat.com/documentation/en-us/red\_hat\_enterprise\_linux/6/html/resource\_management\_guide/ch01}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Introduction to Control Groups (Cgroups)} title = {Introduction to Control Groups (Cgroups)}
} }
@misc{mikroszeviz, @misc{mikroszeviz,
author = {Farkas G{\'a}bor}, author = {Farkas G{\'a}bor},
howpublished = {https://ithub.hu/blog/post/A\_microservice\_architekturarol\_diohejban/}, howpublished = {\url{https://ithub.hu/blog/post/A\_microservice\_architekturarol\_diohejban/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {A microservice architekt{\'u}r{\'a}r{\'o}l di{\'o}h{\'e}jban} title = {A microservice architekt{\'u}r{\'a}r{\'o}l di{\'o}h{\'e}jban}
} }
@misc{kubernetes-pods, @misc{kubernetes-pods,
howpublished = {https://kubernetes.io/docs/concepts/workloads/pods/pod/}, howpublished = {\url{https://kubernetes.io/docs/concepts/workloads/pods/pod/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Pods} title = {Pods}
} }
@misc{kubernetes-replicaset, @misc{kubernetes-replicaset,
howpublished = {https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/}, howpublished = {\url{https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {ReplicaSet} title = {ReplicaSet}
} }
@misc{kubernetes-deployment, @misc{kubernetes-deployment,
howpublished = {https://kubernetes.io/docs/concepts/workloads/controllers/deployment/}, howpublished = {\url{https://kubernetes.io/docs/concepts/workloads/controllers/deployment/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Deployments} title = {Deployments}
} }
@misc{kubernetes-crd, @misc{kubernetes-crd,
howpublished = {https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/}, howpublished = {\url{https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Extend the Kubernetes API with CustomResourceDefinitions} title = {Extend the Kubernetes API with CustomResourceDefinitions}
} }
@misc{kubernetes-hpa, @misc{kubernetes-hpa,
howpublished = {https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/}, howpublished = {\url{https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Horizontal Pod Autoscaler} title = {Horizontal Pod Autoscaler}
} }
@misc{kubeless-http, @misc{kubeless-http,
howpublished = {https://kubeless.io/docs/http-triggers/}, howpublished = {\url{https://kubeless.io/docs/http-triggers/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Expose and secure Kubeless functions} title = {Expose and secure Kubeless functions}
} }
@misc{kubeless-pubsub, @misc{kubeless-pubsub,
howpublished = {https://kubeless.io/docs/pubsub-functions/}, howpublished = {\url{https://kubeless.io/docs/pubsub-functions/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {PubSub events} title = {PubSub events}
} }
@misc{kubernetes-ingress, @misc{kubernetes-ingress,
howpublished = {https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/}, howpublished = {\url{https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Ingress Controllers} title = {Ingress Controllers}
} }
@misc{kubernetes-nginx, @misc{kubernetes-nginx,
howpublished = {https://kubernetes.github.io/ingress-nginx/}, howpublished = {\url{https://kubernetes.github.io/ingress-nginx/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {NGINX Ingress Controller} title = {NGINX Ingress Controller}
} }
@misc{github-issue-1, @misc{github-issue-1,
howpublished = {https://github.com/kubernetes-incubator/metrics-server/issues/131}, howpublished = {\url{https://github.com/kubernetes-incubator/metrics-server/issues/131}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Metrics server issue with hostname resolution of kubelet and apiserver unable to communicate with metric-server clusterIP} title = {Metrics server issue with hostname resolution of kubelet and apiserver unable to communicate with metric-server clusterIP}
} }
@misc{kubeless-quickstart, @misc{kubeless-quickstart,
howpublished = {https://kubeless.io/docs/quick-start/}, howpublished = {\url{https://kubeless.io/docs/quick-start/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Installation} title = {Installation}
} }
@misc{github-hey, @misc{github-hey,
howpublished = {https://github.com/rakyll/hey}, howpublished = {\url{https://github.com/rakyll/hey}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom} title = {HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom}
} }
@misc{github-wrk, @misc{github-wrk,
howpublished = {https://github.com/wg/wrk}, howpublished = {\url{https://github.com/wg/wrk}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Modern HTTP benchmarking tool} title = {Modern HTTP benchmarking tool}
} }
@misc{docker-logging, @misc{docker-logging,
howpublished = {https://docs.docker.com/config/containers/logging/configure/}, howpublished = {\url{https://docs.docker.com/config/containers/logging/configure/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Configure logging drivers} title = {Configure logging drivers}
} }
@misc{kubernetes-ephemeral-storage, @misc{kubernetes-ephemeral-storage,
howpublished = {https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\#local-ephemeral-storage}, howpublished = {\url{https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\#local-ephemeral-storage}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Managing Compute Resources for Containers - Local ephemeral storage} title = {Managing Compute Resources for Containers - Local ephemeral storage}
} }
@misc{kubernetes-eviction, @misc{kubernetes-eviction,
howpublished = {https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/\#eviction-policy}, howpublished = {\url{https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/\#eviction-policy}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Configure Out of Resource Handling - Eviction Policy} title = {Configure Out of Resource Handling - Eviction Policy}
} }
@misc{kubernetes-nodes, @misc{kubernetes-nodes,
howpublished = {https://kubernetes.io/docs/concepts/architecture/nodes/}, howpublished = {\url{https://kubernetes.io/docs/concepts/architecture/nodes/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Nodes} title = {Nodes}
} }
@misc{kubernetes-kubelet, @misc{kubernetes-kubelet,
howpublished = {https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/}, howpublished = {\url{https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {kubelet} title = {kubelet}
} }
@misc{cloud, @misc{cloud,
howpublished = {https://www.ibm.com/cloud/learn/cloud-computing}, howpublished = {\url{https://www.ibm.com/cloud/learn/cloud-computing}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Cloud computing: A complete guide} title = {Cloud computing: A complete guide}
} }
@ -179,49 +179,49 @@
} }
@misc{os-virt, @misc{os-virt,
howpublished = {https://www.w3schools.in/cloud-virtualization/os-virtualization/}, howpublished = {\url{https://www.w3schools.in/cloud-virtualization/os-virtualization/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Operating System (OS) Virtualization} title = {Operating System (OS) Virtualization}
} }
@misc{docker-layers, @misc{docker-layers,
howpublished = {https://medium.com/@jessgreb01/digging-into-docker-layers-c22f948ed612}, howpublished = {\url{https://medium.com/@jessgreb01/digging-into-docker-layers-c22f948ed612}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Digging into Docker layers} title = {Digging into Docker layers}
} }
@misc{kubernetes-runtimes, @misc{kubernetes-runtimes,
howpublished = {https://kubernetes.io/docs/setup/production-environment/container-runtimes/}, howpublished = {\url{https://kubernetes.io/docs/setup/production-environment/container-runtimes/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Container runtimes} title = {Container runtimes}
} }
@misc{kubernetes-concepts, @misc{kubernetes-concepts,
howpublished = {https://kubernetes.io/docs/concepts/}, howpublished = {\url{https://kubernetes.io/docs/concepts/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Concepts} title = {Concepts}
} }
@misc{kube-apiserver, @misc{kube-apiserver,
howpublished = {https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/}, howpublished = {\url{https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {kube-apiserver} title = {kube-apiserver}
} }
@misc{etcd, @misc{etcd,
howpublished = {https://etcd.io/docs/v3.4.0/learning/data\_model/}, howpublished = {\url{https://etcd.io/docs/v3.4.0/learning/data\_model/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Data model} title = {Data model}
} }
@misc{kubernetes-api, @misc{kubernetes-api,
howpublished = {https://kubernetes.io/docs/concepts/overview/kubernetes-api/}, howpublished = {\url{https://kubernetes.io/docs/concepts/overview/kubernetes-api/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {The Kubernetes API} title = {The Kubernetes API}
} }
@misc{kuebrnetes-controller, @misc{kuebrnetes-controller,
howpublished = {https://kubernetes.io/docs/concepts/architecture/controller/}, howpublished = {\url{https://kubernetes.io/docs/concepts/architecture/controller/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Controllers} title = {Controllers}
} }
@ -233,109 +233,109 @@
} }
@misc{kuebrnetes-components, @misc{kuebrnetes-components,
howpublished = {https://kubernetes.io/docs/concepts/overview/components/}, howpublished = {\url{https://kubernetes.io/docs/concepts/overview/components/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Kubernetes Components} title = {Kubernetes Components}
} }
@misc{kubernetes-scheduler, @misc{kubernetes-scheduler,
howpublished = {https://kubernetes.io/docs/concepts/scheduling/kube-scheduler/}, howpublished = {\url{https://kubernetes.io/docs/concepts/scheduling/kube-scheduler/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Kubernetes Scheduler} title = {Kubernetes Scheduler}
} }
@misc{kubernetes-kube-proxy, @misc{kubernetes-kube-proxy,
howpublished = {https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/}, howpublished = {\url{https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {kube-proxy} title = {kube-proxy}
} }
@misc{kubernetes-service, @misc{kubernetes-service,
howpublished = {https://kubernetes.io/docs/concepts/services-networking/service/}, howpublished = {\url{https://kubernetes.io/docs/concepts/services-networking/service/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Service} title = {Service}
} }
@misc{kubernetes-volume, @misc{kubernetes-volume,
howpublished = {https://kubernetes.io/docs/concepts/storage/volumes/}, howpublished = {\url{https://kubernetes.io/docs/concepts/storage/volumes/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Volumes} title = {Volumes}
} }
@misc{kubernetes-ingress-resource, @misc{kubernetes-ingress-resource,
howpublished = {https://kubernetes.io/docs/concepts/services-networking/ingress/}, howpublished = {\url{https://kubernetes.io/docs/concepts/services-networking/ingress/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Ingress} title = {Ingress}
} }
@misc{kubeless, @misc{kubeless,
howpublished = {https://itnext.io/kubeless-kubernetes-native-serverless-framework-3d0f96e03add}, howpublished = {\url{https://itnext.io/kubeless-kubernetes-native-serverless-framework-3d0f96e03add}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Kubeless --- Kubernetes Native Serverless Framework} title = {Kubeless --- Kubernetes Native Serverless Framework}
} }
@misc{kubeless-api-deploy, @misc{kubeless-api-deploy,
howpublished = {https://kubeless.io/docs/advanced-function-deployment/}, howpublished = {\url{https://kubeless.io/docs/advanced-function-deployment/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Deploying Kubeless Functions using Kubernetes API} title = {Deploying Kubeless Functions using Kubernetes API}
} }
@misc{kubeless-build, @misc{kubeless-build,
howpublished = {https://kubeless.io/docs/building-functions/}, howpublished = {\url{https://kubeless.io/docs/building-functions/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Build process for functions} title = {Build process for functions}
} }
@misc{istio-service-mesh, @misc{istio-service-mesh,
howpublished = {https://istio.io/docs/concepts/what-is-istio/}, howpublished = {\url{https://istio.io/docs/concepts/what-is-istio/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {What is Istio?} title = {What is Istio?}
} }
@misc{istio-observer, @misc{istio-observer,
howpublished = {https://istio.io/docs/concepts/observability/}, howpublished = {\url{https://istio.io/docs/concepts/observability/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Observability} title = {Observability}
} }
@misc{istio-mgmt, @misc{istio-mgmt,
howpublished = {https://istio.io/docs/concepts/traffic-management/}, howpublished = {\url{https://istio.io/docs/concepts/traffic-management/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Traffic Management} title = {Traffic Management}
} }
@misc{knative, @misc{knative,
howpublished = {https://containerjournal.com/topics/container-management/what-is-knative-and-what-can-it-do-for-you/}, howpublished = {\url{https://containerjournal.com/topics/container-management/what-is-knative-and-what-can-it-do-for-you/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {What is Knative, and What Can It Do for You?} title = {What is Knative, and What Can It Do for You?}
} }
@misc{knative-serving, @misc{knative-serving,
howpublished = {https://knative.dev/docs/serving/}, howpublished = {\url{https://knative.dev/docs/serving/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Knative Serving} title = {Knative Serving}
} }
@misc{knative-eventing, @misc{knative-eventing,
howpublished = {https://knative.dev/docs/eventing/}, howpublished = {\url{https://knative.dev/docs/eventing/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Knative Eventing} title = {Knative Eventing}
} }
@misc{knative-thoughts, @misc{knative-thoughts,
howpublished = {https://searchitoperations.techtarget.com/news/252469607/Knative-serverless-Kubernetes-bypasses-FaaS-to-revive-PaaS}, howpublished = {\url{https://searchitoperations.techtarget.com/news/252469607/Knative-serverless-Kubernetes-bypasses-FaaS-to-revive-PaaS}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Knative serverless Kubernetes bypasses FaaS to revive PaaS} title = {Knative serverless Kubernetes bypasses FaaS to revive PaaS}
} }
@misc{knative-gateweay, @misc{knative-gateweay,
howpublished = {https://knative.dev/v0.9-docs/serving/samples/knative-routing-go/}, howpublished = {\url{https://knative.dev/v0.9-docs/serving/samples/knative-routing-go/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Routing across multiple Knative services - Go} title = {Routing across multiple Knative services - Go}
} }
@misc{knative-autoscaler, @misc{knative-autoscaler,
howpublished = {https://knative.dev/docs/serving/configuring-the-autoscaler/}, howpublished = {\url{https://knative.dev/docs/serving/configuring-the-autoscaler/}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Configuring the Autoscaler} title = {Configuring the Autoscaler}
} }
@ -347,19 +347,19 @@
} }
@misc{knative-gloo, @misc{knative-gloo,
howpublished = {https://medium.com/solo-io/gloo-by-solo-io-is-the-first-alternative-to-istio-on-knative-324753586f3a}, howpublished = {\url{https://medium.com/solo-io/gloo-by-solo-io-is-the-first-alternative-to-istio-on-knative-324753586f3a}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Gloo, by Solo.io, is the first alternative to Istio on Knative} title = {Gloo, by Solo.io, is the first alternative to Istio on Knative}
} }
@misc{knative-monitoring, @misc{knative-monitoring,
howpublished = {https://github.com/knative/docs/blob/master/docs/serving/accessing-metrics.md}, howpublished = {\url{https://github.com/knative/docs/blob/master/docs/serving/accessing-metrics.md}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Accessing Metrics} title = {Accessing Metrics}
} }
@misc{knative-crd, @misc{knative-crd,
howpublished = {https://github.com/knative/serving/blob/master/docs/spec/overview.md}, howpublished = {\url{https://github.com/knative/serving/blob/master/docs/spec/overview.md}},
note = {Megtekintve 2019-12-04}, note = {Megtekintve 2019-12-04},
title = {Resource Types} title = {Resource Types}
} }

View File

@ -62,24 +62,36 @@ Erre a problémára több megoldási lehetőség létezik, viszont egyik sem tö
Annak érdekében, hogy a Knative-ba telepített függvények skálázódása az általuk nyújtott teljesítményben is meglátszódjon, szerettem volna limitálni egy-egy Pod teljesítményét. Erre viszont a Knative által létrehozott objektum típusok esetében nincs lehetőség. Emiatt úgy döntöttem, hogy a Knative által létrehozott Kubernetes Deployment objektumot módosítom, ott hozom létre a limiteket. Ez sikerült is, a függvény működött tovább, a megadott korlátozások érvénybe léptek. Viszont az elvárások nem teljesültek, a Podok létrejöttével nem emelkedett meg a függvény teljesítménye. A lenti diagrammon látszik, hogy a függvény végig ezer kérést volt képes kiszolgálni másodpercenként. Annak érdekében, hogy a Knative-ba telepített függvények skálázódása az általuk nyújtott teljesítményben is meglátszódjon, szerettem volna limitálni egy-egy Pod teljesítményét. Erre viszont a Knative által létrehozott objektum típusok esetében nincs lehetőség. Emiatt úgy döntöttem, hogy a Knative által létrehozott Kubernetes Deployment objektumot módosítom, ott hozom létre a limiteket. Ez sikerült is, a függvény működött tovább, a megadott korlátozások érvénybe léptek. Viszont az elvárások nem teljesültek, a Podok létrejöttével nem emelkedett meg a függvény teljesítménye. A lenti diagrammon látszik, hogy a függvény végig ezer kérést volt képes kiszolgálni másodpercenként.
%TODO
<jmeter-pillanat-junky> <jmeter-pillanat-junky>
Korábbi mérések során a prímszámoló függvény egy Python folyamatot használva nyolcszáz kérést szolgált ki másodpercenként. Tehát a mérés során létrejött öt Pod nagyjából négyezer kérést kellene kiszolgálnia másodpercenként az elvárásaink alapján. Ezzel szemben az egész mérés során olyan teljesítményt nyújt a függvény, melyet két Pod is ki tudna szolgálni. Korábbi mérések során a prímszámoló függvény egy Python folyamatot használva nyolcszáz kérést szolgált ki másodpercenként. Tehát a mérés során létrejött öt Pod nagyjából négyezer kérést kellene kiszolgálnia másodpercenként az elvárásaink alapján. Ezzel szemben az egész mérés során olyan teljesítményt nyújt a függvény, melyet két Pod is ki tudna szolgálni.
Kíváncsi voltam, egyes mérések során milyen belső állapotai vannak a Knative egyes alegységeinek. Azért, hogy ezeket megfigyelhessem, telepítettem a Knative Monitoring egységét. Ez után újra elvégeztem bizonyos méréseket. Először a prímszámoló függvény viselkedését vizsgáltam meg. Az első ábrán a Podok CPU használata látható. Érdekes, hogy a Workeren elérhető húsz magból összesen hetet sem használnak. A második ábrán látható, hogy a függvényt kiszolgáló Podok és a Knative rendszer processzorhasználata hogyan alakul egymáshoz képest. Kíváncsi voltam, egyes mérések során milyen belső állapotai vannak a Knative egyes alegységeinek. Azért, hogy ezeket megfigyelhessem, telepítettem a Knative Monitoring egységét. Ez után újra elvégeztem bizonyos méréseket. Először a prímszámoló függvény viselkedését vizsgáltam meg. Érdekes, hogy a Workeren elérhető húsz magból összesen hetet sem használnak.
<grafana-isprime-cpu>
%TODO
<grafana-isprime-controllvsdata> <grafana-isprime-controllvsdata>
Érdekes, hogy együtt is csupán körülbelül tíz processzormagot használnak. A Control Plane az ábrán a Knative Serving egyes komponenseit, az Istio-t, a monitoring eszközöket és a Kubernetes beépített részeit jelenti. A lenti ábrán látható ezen komponensek között miként oszlik el a processzorhasználat. A fenti ábrán látható, hogy a függvényt kiszolgáló Podok és a Knative rendszer processzorhasználata hogyan alakul egymáshoz képest. Érdekes, hogy együtt is csupán körülbelül tíz processzormagot használnak. A Control Plane az ábrán a Knative Serving egyes komponenseit, az Istio-t, a monitoring eszközöket és a Kubernetes beépített részeit jelenti. A lenti ábrán látható ezen komponensek között miként oszlik el a processzorhasználat.
%TODO
<grafana-isprime-controlplane-namespaces> <grafana-isprime-controlplane-namespaces>
Látszik, hogy a Knative Serving komponense használja leginkább a processzort. A kubectl top parancsot használva azt is sikerült kideríteni, hogy pontosan az activator nevű komponens miatt emelkedik ki a Knative processzorhasználata. A Knative activator felel a metrik\'ak autoscaler fel\'e tov\'abb\'it\'as\'a\'ert, valamint inaktiv Revision-\"okh\"oz \'erkező k\'er\'esek bufferel\'es\'e\'ert. A Grafana által generált grafikonok egyikén megfigyelhető, hogy a pánik mód mikor kapcsolt be és meddig tartott. Ez a lenti grafikonon látszik. A pánik mód a specifikáltak szerint viselkedik, az xy ábrán az is látszik, miként alakult a Podok száma a mérés során. Látszik, hogy a Knative Serving komponense használja leginkább a processzort. A kubectl top parancsot használva azt is sikerült kideríteni, hogy pontosan az Activator nevű komponens miatt emelkedik ki a Knative processzorhasználata. A Knative Activator felel a metrik\'ak autoscaler fel\'e tov\'abb\'it\'as\'a\'ert, valamint inaktiv Revision-\"okh\"oz \'erkező k\'er\'esek bufferel\'es\'e\'ert. A Grafana által generált grafikonok egyikén megfigyelhető, hogy a pánik mód mikor kapcsolt be és meddig tartott. Ez a lenti grafikonon látszik. A pánik mód a specifikáltak szerint viselkedik, az xy ábrán az is látszik, miként alakult a Podok száma a mérés során.
%TODO
<grafana-isprime-panik> <grafana-isprime-panik>
<grafana-isprime-podszam> %TODO
<grafana-isprime-jmeter>
Másodikként az echo típusú függvény terhelése alatt vizsgáltam meg a Knative belső működését. A fenti k\'et \'abr\'an l\'atszik, hogy a p\'anik m\'od sor\'an l\'etrej\"ottek r\"ovid idő alatt a Podok, majd ut\'ana v\'egig k\"ozel annyi sz\'am\'u Pod volt. Az is megfigyelhető, hogy b\'ar a hosztg\'ep nincs kihaszn\'alva, a f\"uggv\'eny teljes\'itm\'enye degrad\'al\'odott.
<grafana-isprime-observedconcurrency>
A Knative rendszer sz\'amos m\'odon sz\'amontartja a f\"uggv\'enybe \'erkező konkurens k\'er\'esek sz\'am\'at. P\'eld\'aul, mint ahogy az a fenti \'abr\'an l\'athat\'o, az Average Panic Concurrency egy r\"ovidebb idő alatt sz\'amolt \'atlag, mint ahogy a p\'anik sk\'al\'az\'ashoz sz\"uks\'eges. Az Average Concurrency egy sokkal lassabban v\'altoz\'o \'ert\'ek, ez az, ami az eddigi m\'er\'esek sor\'an ki lett nyerve az autoscaler napl\'of\'ajljaib\'ol. A Target Concurrency \'ert\'ek a YAML \'allom\'anyban be\'all\'itott \'ert\'ek. Az Excess Burst Capacity \'ert\'ek reprezent\'alja a k\"ul\"onbs\'eget a f\"uggv\'eny tartal\'ek kapacit\'asa - mennyi t\"obblet terhel\'est k\'epes a f\"uggv\'eny feldolgozni, mielőtt t\'ulterhelődik - \'es a be\'all\'itott c\'elkonkurencia k\"oz\"ott. Amennyiben ez a sz\'am negat\'iv, az Activator komponensen is \'atmennek a be\'erkező k\'er\'esek.
Másodikként az echo típusú függvény terhelése alatt vizsgáltam meg a Knative belső működését. A lenti \'abr\'an megfigyelhető, hogy ez esetben a Control Plane processzorhaszn\'alata t\"obb volt, mint a Data Plane-\'e. A m\'er\'es sor\'an ez esetben is romlott a monitoring rendszer telep\'it\'ese ut\'an.
%TODO
<grafana-hello-controllvsdata>