踩坑记录(四)

最初安装版本,prometheus 和 JMX Exporter 版本都与目前安装的一致。grafana版本版本为 grafana-8.0.4-1.x86_64.rpm,引入的模板ID:8563。

当时安装好之后,配置好 grafana 的 Data sources 和 Manage 之后,出现的问题是浏览器控制台报错信息如下:

WebSocket connection to 'ws://192.168.0.102:30000/api/live/ws' failed:

百度无果后,解决的方式是首先将 grafana 的版本从 8.0.4 降到 8.0.0,然后将 JMX Exporter 配置文件 simple-config.yml 内容做了修改,内容如下:

# 以下内容为最新内容,之前的内容参照《linux上使用JMX Exporter结合prometheus》中 simple-config.yml 的内容
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
blacklistObjectNames: []
rules:
  - pattern: 'java.lang<type=OperatingSystem><>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:'
    name: os_$1_bytes
    type: GAUGE
    attrNameSnakeCase: true
  - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
    name: os_$1
    type: GAUGE
    attrNameSnakeCase: true

jmx_exporter 配置解释

下面是官方给出的 jmx_exporter 的配置样例:

---
startDelaySeconds: 0
hostPort: 127.0.0.1:1234
username: 
password: 
jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
whitelistObjectNames: ["org.apache.cassandra.metrics:*"]
blacklistObjectNames: ["org.apache.cassandra.metrics:type=ColumnFamily,*"]
rules:
  - pattern: 'org.apache.cassandra.metrics<type=(\w+), name=(\w+)><>Value: (\d+)'
    name: cassandra_$1_$2
    value: $3
    valueFactor: 0.001
    labels: {}
    help: "Cassandra metric $1 $2"
    type: GAUGE
    attrNameSnakeCase: false

名称

描述

startDelaySeconds

在处理请求前的启动延迟,单位为秒。在延迟期间,也就是启动前,任何的请求都只会返回空的指标集

hostPort

远程JMX接入的主机与端口号。如果此配置项和jmxurl都没有被设置,则会与本地JVM会话。(以推荐的-javaagent 模式启动,并且没有配置远程JMX,则不用填此配置项。)

username

远程JMX身份认证的用户名

password

远程JMX身份认证的密码

jmxUrl

完整的 JMX URL,若配置了主机和端口则不应配置此项。

ssl

是否开启与JMX的SSL通讯。要配置此项前必须设置一些系统属性:

-Djavax.net.ssl.keyStore=/home/user/.keystore

-Djavax.net.ssl.keyStorePassword=changeit

-Djavax.net.ssl.trustStore=/home/user/.truststore

-Djavax.net.ssl.trustStorePassword=changeit

lowercaseOutputName

是否把指标名称转换为小写,默认为false。

lowercaseOutputLabelNames

是否把标签名称转换为小写,默认为false

whitelistObjectNames

查询对象白名单,默认是所有mBeans对象。不在白名单则不会被查询。支持正则匹配。

blacklistObjectNames

查询对象黑名单,默认无。支持正则匹配。

rules

一个按顺序引用的规则列表,处理过程会在第一条规则匹配上时停止。未匹配上的atrributes则不会被收集。默认以默认格式收集所有指标

pattern

匹配每一个bean attribute(属性)的正则样式。该样式不是锚定的。可以设置正则捕获组用与其他配置项(如上面的样例 name: cassandra_$1_$2)。默认匹配所有格式。

attrNameSnakeCase

将attribute名称 转换为蛇形格式。例如 anAttrName 转换为 an_attr_name。默认为false

name

指标名。可以引用 pattern中设置的捕获组。如果没有指定则使用默认格式。如果为空,此attribute的处理会停止且没有输出。

value

指标值。静态值和引用pattern捕获组均可。如果没指定则抓取mBean attribute对应的value值。

valueFactor

指标值(或 mBean value)的乘数。多用于秒和毫秒等单位转化

labels

标签名:标签值 形式的键值对。可引用捕获组。使用时必须配置 name 项。如果没有指定并且没有使用默认格式,则不会输出标签。

help

指标的帮助信息,可引用捕获组 。使用时必须配置 name 项。默认为mBean attribute的描述和全名。

type

指标格式,值为 GAUGE, COUNTER 或 UNTYPED. 使用时必须配置 name项,默认为 UNTYPED

### Detectron2 使用过程中的常见问题与解决方案 #### 一、编译错误 当尝试编译 Detectron2 的自定义操作时,可能会遇到 `nvcc.exe` 编译失败的情况。具体表现为以下错误消息: ``` error: command 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin\nvcc.exe' failed with exit status 1 ``` 此问题是由于 CUDA 版本不兼容或者某些代码逻辑不符合当前环境所致[^3]。 **解决方法:** 可以修改相关源码文件以适配当前环境。例如,在路径 `detectron2/layers/csrc/nms_rotated/` 下的 `nms_rotated_cuda.cu` 文件中,注释掉可能导致冲突的部分代码片段。以下是具体的代码调整示例: ```cpp // 注释掉可能引发问题的代码段 /* if (condition) { // 可能存在版本差异的实现细节 } */ ``` 通过上述方式能够有效规避因 CUDA 工具链版本不同而导致的编译异常。 --- #### 二、CUDA 和 cuDNN 配置不当 在 Windows 系统上安装 PyTorch 或其扩展库(如 torch-scatter)并集成到 Detectron2 中时,可能出现 CUDA 或 cuDNN 不匹配的问题。典型表现形式为运行时报错提示找不到特定函数或动态链接库加载失败[^1]。 **解决策略:** 确认所使用的 CUDA 和 cuDNN 版本是否满足官方文档的要求,并重新构建依赖关系树。推荐按照以下步骤验证环境一致性: - 安装与目标框架相适应的基础组件; - 测试基础张量运算功能正常运作后再引入高级模块。 --- #### 三、模型推理阶段性能优化不足 对于大规模数据集上的实时处理需求而言,默认参数设置下的速度往往难以达到预期效果[^2]。 **改进措施:** 针对硬件资源特性定制化调优方案,比如启用混合精度训练(Mixed Precision Training),减少内存占用的同时提升计算效率;另外还可以考虑利用 TensorRT 进行进一步加速部署流程。 --- #### 、多机分布式训练同步障碍 跨节点间通信延迟过高会显著降低整体收敛速率甚至造成死锁现象发生。 **应对之策:** 合理规划网络拓扑结构以及选用高效的集合通讯算法来最小化交互开销;同时也要注意检查防火墙规则以免意外阻断必要的端口连接请求。 --- ### 总结 以上列举了几类较为常见的 Detectron2 实践难题及其对应的处置建议。实际开发过程中还需依据具体情况灵活运用这些技巧加以克服困难。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值