ZWEI

Time flies.

gpu压力测试

执行gpu脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 进入要压力测试gpu 容器
kubect -n aijob-system exec -it dddd-0 -- sh
# 编写测试脚本
cat << EOF > demo.py
import os
import numpy as np
import torch
from torchvision.models import resnet18
import time

if __name__ == '__main__':
model = resnet18(pretrained=False)
device = torch.device('cuda')
model.eval()
model.to(device)
dump_input = torch.ones(1,3,224,224).to(device)

# Warn-up
for _ in range(500000):
start = time.time()
outputs = model(dump_input)
torch.cuda.synchronize()
end = time.time()
print('Time:{}ms'.format((end-start)*1000))

with torch.autograd.profiler.profile(enabled=True, use_cuda=True, record_shapes=False, profile_memory=False) as prof:
outputs = model(dump_input)
print(prof.table())
EOF
# 执行python 文件
python demo.py

查看gpu的使用率

1
2
3
4
5
# grah 地址查看
http://172.18.1.38:30901/graph?g0.expr=DCGM_FI_DEV_GPU_UTIL%7Bnamespace%3D%22aijob-system%22%2Cpod!%3D%22%22%7D&g0.tab=1&g0.stacked=0&g0.show_exemplars=0&g0.range_input=1h

# 监控指标
DCGM_FI_DEV_GPU_UTIL{namespace="aijob-system",pod!=""}

查看pod 的hpa

1
2
3
4
5
6
7
kubectl -n aijob-system get horizontalpodautoscaler.autoscaling  dddd(任务名称)
输出如下:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
horizontalpodautoscaler.autoscaling/dddd AIJob/dddd 0/80 2 3 2 44s
# TARGETS gpu使用率阀值
# MINPODS 最小pod数量
# MAXPODS 最大pod数量

查看pod 数量是否正确

1
kubectl -n aijob-system get pod

简介

BPF全称是「Berkeley Packet Filter」,翻译过来是「伯克利包过滤器」,顾名思义,它是在伯克利大学诞生的,1992年Steven McCanne 和 Van Jacobson 写了一篇《The BSD Packet Filter: A New Architecture for User-level Packet Capture》论文 ,第一次提出了BPF技术,在文中,作者描述了他们如何在 Unix 内核实现网络数据包过滤,这种新的技术比当时最先进的数据包过滤技术快 20 倍。

阅读全文 »

摘要

本文介绍连接跟踪(connection tracking,conntrack,CT)的原理,应用,及其在 Linux 内核中的实现。

代码分析基于内核 4.19。为使行文简洁,所贴代码只保留了核心逻辑,但都给出了代码 所在的源文件,如有需要请查阅。

水平有限,文中不免有错误之处,欢迎指正交流。

阅读全文 »

架构lvs时经常会使用ipvsadm命令来查看状态,尽管可以使用 ipvsadm –help ,查看命令的使用方法。但会花时间在调试命令上面,特别针对初学者来说,更是如此。特此把一些较为常用的ipvsadm状态查看命令整理,以供大家参考。

阅读全文 »

最近在看kube-proxy ipvs的源码,发现用了很多年的LVS而且NAT模式居多的我尽然不知道原来LVS可以利用Iptables实现SNAT模式。很长时间以来一直以为LVS的NAT模式只支持DNAT,真是印证了“纸上得来终觉浅,绝知此事要躬行”,还是要多读源码。

惯用思路,先实践验证后分细原理。

阅读全文 »

iptables规则设置用法

iptables的基本语法格式

iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
说明:
表名、链名:用于指定iptables命令所操作的表和链;
命令选项:用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;
条件匹配:用于指定对符合什么样 条件的数据包进行处理;
目标动作或跳转:用于指定数据包的处理方式(比如允许通过、拒绝、丢弃、跳转(Jump)给其它链处理。

阅读全文 »

iptables简介

netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。

阅读全文 »

概述

用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

tcpdump基于底层libpcap库开发,运行需要root权限。

阅读全文 »
0%