Go语言编写的k8s环境下的系统监控数据采集工具

需积分: 9 0 下载量 21 浏览量 更新于2024-12-13 收藏 6KB ZIP 举报
资源摘要信息: "metric_data" 文件标题 "metric_data" 暗示了这个项目与收集和处理度量数据相关。度量数据通常指系统、应用程序或网络的性能指标,它们对于监控系统健康状况和性能至关重要。在该文件的上下文中,"metric_data" 可能是一个用于收集特定指标的命令行工具或服务。 描述中提到的 "要求 k8s: v1.13" 表明这个工具是为了在 Kubernetes (k8s) 环境下使用,且需要 Kubernetes 版本 1.13。Kubernetes 是一个开源系统,用于自动化容器化应用程序的部署、扩展和操作。它已经成为容器编排事实上的标准。 描述还提供了该工具的使用方法: 1. 首先通过 `go build` 构建程序,然后通过 `source env.sh` 设置环境变量,最后执行 `./metric_data` 命令启动数据收集过程。 2. 另一种方法是执行 `sh -x curl.sh`,这可能是用于测试或与现有系统交互的脚本。 "supported metric" 列表指出了该工具支持的度量类型: - `cpu_usage_percent`: CPU使用率,通常表示为CPU使用时间的百分比,用以衡量CPU的繁忙程度。 - `cpu_load`: CPU负载,反映了系统在特定时间间隔内的平均工作量,它不同于CPU使用率,因为CPU负载包括了在等待中的进程。 - `mem_usage_percent`: 内存使用率,表示为当前已使用内存占系统总内存的百分比。 - `mem_usage_bytes`: 内存使用量,以字节为单位,反映了系统当前已使用的内存量。 - `gpu_usage_percent`: GPU使用率,类似于CPU使用率,但用于图形处理单元,表示GPU的繁忙程度。 - `gpu_mem_percent`: GPU内存使用率,以百分比表示,反映了GPU内存的使用情况。 - `gpu_fb_used`: GPU帧缓冲区使用量,以Mebibytes (MiB) 为单位,通常用于衡量显示系统的内存使用情况。 标签 "Go" 指示该程序是使用Go语言编写的。Go是一种编译型、静态类型语言,由Google开发,设计目标是拥有C语言的速度和Python等动态语言的开发效率。Go语言的并发机制、垃圾回收和标准库使其成为构建现代分布式系统和服务的流行选择。 文件名称 "metric_data-master" 暗示这是一个Git版本控制系统下的源代码仓库。"master" 通常指代主分支,这是项目的主开发线。在2020年之前,GitHub上的默认分支名是 "master",但在种族平等和反歧视的社会运动影响下,GitHub和其他平台已经将默认分支名更改为 "main"。 综合上述信息,我们可以得出这个名为 "metric_data" 的工具是用于在Kubernetes环境上运行的Go程序,它能够收集包括CPU、内存以及GPU相关的多种性能指标。开发者可以通过构建并运行该工具来监控系统的实时状态,而这些指标数据可用于优化资源分配、故障诊断以及系统性能的提升。

import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuracy') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]train_data.shape[2]) # 60000784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]test_data.shape[2]) # 10000784 We next change label number to a 10 dimensional vector, e.g., 1-> train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 we build a three layer model, 784 -> 64 -> 10 MLP_3 = keras.models.Sequential([ keras.layers.Dense(128, input_shape=(784,),activation='relu'), keras.layers.Dense(64, activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_3.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_3.fit(train_data,train_labels, batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history对于该模型,使用不同数量的训练数据(5000,10000,15000,…,60000,公差=5000的等差数列),绘制训练集和测试集准确率(纵轴)关于训练数据大小(横轴)的曲线

2023-06-01 上传

import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt ## Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuarcy')# ax.set_ylabel('Categorical Crossentropy Loss') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) ## We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() ## We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]*train_data.shape[2]) # 60000*784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]*test_data.shape[2]) # 10000*784 ## We next change label number to a 10 dimensional vector, e.g., 1->[0,1,0,0,0,0,0,0,0,0] train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) ## start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 # ## we build a three layer model, 784 -> 64 -> 10 MLP_3 = keras.models.Sequential([ keras.layers.Dense(64, input_shape=(784,),activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_3.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_3.fit(train_data,train_labels, batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history['val_accuracy']模仿此段代码,写一个双隐层感知器(输入层784,第一隐层128,第二隐层64,输出层10)

2023-06-01 上传