我开始使用Lens并注意到,当节点内的 Pod 的限制高于实际容量时,它会向您发出一些警告。

所以我尝试使用kubectl获取此信息,但我是jsonpath的新手,我只是设法使用如下内容获取原始信息:
kubectl get pods -o=jsonpath='{.items..resources.limits}' -A
Run Code Online (Sandbox Code Playgroud)
这会产生这样的结果:
{"cpu":"200m","memory":"1Gi"} {"cpu":"200m","memory":"1Gi"} {"cpu":"200m","memory":"512Mi"} {"cpu":"500m","memory":"250Mi"} {"memory":"170Mi"} {"memory":"170Mi"} {"cpu":"2","memory":"2Gi"} {"cpu":"2","memory":"2Gi"} {"cpu":"2","memory":"2Gi"} {"cpu":"1","memory":"1Gi"} {"cpu":"1","memory":"1Gi"} {"cpu":"2","memory":"2Gi"} {"cpu":"100m","memory":"128Mi"} {"cpu":"100m","memory":"128Mi"} {"cpu":"500m","memory":"600Mi"} {"cpu":"1","memory":"1Gi"} {"cpu":"100m","memory":"25Mi"} {"cpu":"100m","memory":"25Mi"}
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是,如何总结所有这些值?这些值是否准确,或者我是否遗漏了任何其他查询?我已经使用 LimitRange 检查过,得到的值似乎是正确的,结果包括 LimitRange 配置设置的限制。
在我们现在不那么现代的n层应用程序中,我们对DataSet进行了广泛的使用,我们正在评估对其他较轻对象(即典型对象的集合)的更改.
有没有关于通过这样做可以获得多少内存消耗量的参考文档?
我正在尝试将非常大的图像(大约16000x7000像素)加载到材质中,并且我尝试异步加载它.我的第一个尝试是创建一个加载BitmapImage的任务,然后将其用于材质:
var bmp = await System.Threading.Tasks.Task.Run(() =>
{
BitmapImage img = new BitmapImage(new Uri(path));
ImageBrush brush = new ImageBrush(img);
var material = new System.Windows.Media.Media3D.DiffuseMaterial(brush);
material.Freeze();
return material;
});
BackMaterial = bmp;
Run Code Online (Sandbox Code Playgroud)
但是我发现的是,在显示材质之前,图像没有被加载并扩展到内存中(如果我直接使用ImageBrush则相同).
我试图避免这种情况,因为它冻结了我的UI,但我没有找到强制位图加载和解码的正确方法.如果我添加一个WriteableBitmap,则在Task内部执行图片的加载,但之后我将使用的内存量增加一倍:
var bmp = await System.Threading.Tasks.Task.Run(() =>
{
BitmapImage img = new BitmapImage(new Uri(path));
WriteableBitmap wbmp = new WriteableBitmap(img);
ImageBrush brush = new ImageBrush(wbmp);
var material = new System.Windows.Media.Media3D.DiffuseMaterial(brush);
material.Freeze();
return material;
});
BackMaterial = bmp;
Run Code Online (Sandbox Code Playgroud)
有没有办法强制加载而不会将其加倍到内存中.我也尝试用解码器加载它,但我也加载到内存中两次:
var decoder = BitmapDecoder.Create(new Uri(path), BitmapCreateOptions.PreservePixelFormat,
BitmapCacheOption.None);
var frame = decoder.Frames[0]; …Run Code Online (Sandbox Code Playgroud)