text done for real
This commit is contained in:
parent
b15d6130d6
commit
649b5ec6ab
@ -10,146 +10,146 @@
|
||||
|
||||
@misc{dockervirt,
|
||||
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},
|
||||
title = {Comparing Virtual Machines vs Docker Containers}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Docker overview}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {namespaces - overview of Linux namespaces}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Introduction to Control Groups (Cgroups)}
|
||||
}
|
||||
|
||||
@misc{mikroszeviz,
|
||||
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},
|
||||
title = {A microservice architekt{\'u}r{\'a}r{\'o}l di{\'o}h{\'e}jban}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Pods}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {ReplicaSet}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Deployments}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Extend the Kubernetes API with CustomResourceDefinitions}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Horizontal Pod Autoscaler}
|
||||
}
|
||||
|
||||
@misc{kubeless-http,
|
||||
howpublished = {https://kubeless.io/docs/http-triggers/},
|
||||
howpublished = {\url{https://kubeless.io/docs/http-triggers/}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {Expose and secure Kubeless functions}
|
||||
}
|
||||
|
||||
@misc{kubeless-pubsub,
|
||||
howpublished = {https://kubeless.io/docs/pubsub-functions/},
|
||||
howpublished = {\url{https://kubeless.io/docs/pubsub-functions/}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {PubSub events}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Ingress Controllers}
|
||||
}
|
||||
|
||||
@misc{kubernetes-nginx,
|
||||
howpublished = {https://kubernetes.github.io/ingress-nginx/},
|
||||
howpublished = {\url{https://kubernetes.github.io/ingress-nginx/}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {NGINX Ingress Controller}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Metrics server issue with hostname resolution of kubelet and apiserver unable to communicate with metric-server clusterIP}
|
||||
}
|
||||
|
||||
@misc{kubeless-quickstart,
|
||||
howpublished = {https://kubeless.io/docs/quick-start/},
|
||||
howpublished = {\url{https://kubeless.io/docs/quick-start/}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {Installation}
|
||||
}
|
||||
|
||||
@misc{github-hey,
|
||||
howpublished = {https://github.com/rakyll/hey},
|
||||
howpublished = {\url{https://github.com/rakyll/hey}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom}
|
||||
}
|
||||
|
||||
@misc{github-wrk,
|
||||
howpublished = {https://github.com/wg/wrk},
|
||||
howpublished = {\url{https://github.com/wg/wrk}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {Modern HTTP benchmarking tool}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Configure logging drivers}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Managing Compute Resources for Containers - Local ephemeral storage}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Configure Out of Resource Handling - Eviction Policy}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Nodes}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {kubelet}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Cloud computing: A complete guide}
|
||||
}
|
||||
@ -179,49 +179,49 @@
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Operating System (OS) Virtualization}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Digging into Docker layers}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Container runtimes}
|
||||
}
|
||||
|
||||
@misc{kubernetes-concepts,
|
||||
howpublished = {https://kubernetes.io/docs/concepts/},
|
||||
howpublished = {\url{https://kubernetes.io/docs/concepts/}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {Concepts}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {kube-apiserver}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Data model}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {The Kubernetes API}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Controllers}
|
||||
}
|
||||
@ -233,109 +233,109 @@
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Kubernetes Components}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Kubernetes Scheduler}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {kube-proxy}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Service}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Volumes}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Ingress}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Kubeless --- Kubernetes Native Serverless Framework}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Deploying Kubeless Functions using Kubernetes API}
|
||||
}
|
||||
|
||||
@misc{kubeless-build,
|
||||
howpublished = {https://kubeless.io/docs/building-functions/},
|
||||
howpublished = {\url{https://kubeless.io/docs/building-functions/}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {Build process for functions}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {What is Istio?}
|
||||
}
|
||||
|
||||
@misc{istio-observer,
|
||||
howpublished = {https://istio.io/docs/concepts/observability/},
|
||||
howpublished = {\url{https://istio.io/docs/concepts/observability/}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {Observability}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Traffic Management}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {What is Knative, and What Can It Do for You?}
|
||||
}
|
||||
|
||||
@misc{knative-serving,
|
||||
howpublished = {https://knative.dev/docs/serving/},
|
||||
howpublished = {\url{https://knative.dev/docs/serving/}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {Knative Serving}
|
||||
}
|
||||
|
||||
@misc{knative-eventing,
|
||||
howpublished = {https://knative.dev/docs/eventing/},
|
||||
howpublished = {\url{https://knative.dev/docs/eventing/}},
|
||||
note = {Megtekintve 2019-12-04},
|
||||
title = {Knative Eventing}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Knative serverless Kubernetes bypasses FaaS to revive PaaS}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Routing across multiple Knative services - Go}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Configuring the Autoscaler}
|
||||
}
|
||||
@ -347,19 +347,19 @@
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Gloo, by Solo.io, is the first alternative to Istio on Knative}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Accessing Metrics}
|
||||
}
|
||||
|
||||
@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},
|
||||
title = {Resource Types}
|
||||
}
|
||||
|
@ -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.
|
||||
|
||||
%TODO
|
||||
<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.
|
||||
|
||||
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.
|
||||
|
||||
<grafana-isprime-cpu>
|
||||
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.
|
||||
|
||||
%TODO
|
||||
<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>
|
||||
|
||||
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-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>
|
||||
|
Loading…
Reference in New Issue
Block a user