misterli's Blog.

misterli's Blog.

欢迎您访问misterli's Blog.

AMD 锐龙8745H/8845H 使用ollama和LM Studio 运行QWB:32b

蹭一波通义千问QwQ-32B‌的热度。前几天阿里巴巴正式发布并开源全新推理模型‌通义千问QwQ-32B‌,主打“高性能+低门槛”特性。该模型基于320亿参数规模,在数学推理、代码生成及通用任务中表现亮眼,综合性能对标DeepSeek-R1(6710亿参数,激活量370亿),还是使用我的AMD 锐龙8745H 小主机,ollma上用起来比较简单,LM Studio上需要改一下设置。

ollama

我的机器上 ollama 测试下来 BIOS中核显分配 2g 内存可以运行qwb:32b (Q4_K_M) ,

image-20250306145939778

启动后可以看到内存使用 28.4/29.8GB

image-20250306150223579

推出使用ollama ps 查看一下情况

1
2
3
C:\Users\ls> ollama ps
NAME ID SIZE PROCESSOR UNTIL
qwq:latest cc1091b0e276 22 GB 38%/62% CPU/GPU 4 minutes from now

使用过程中cpu/gpu占用

image-20250306151341412

AMD 锐龙8745H/8845H 通过LM Studio使用GPU运行deepseek指南

AMD 锐龙8745H/8845H 通过LM Studio使用GPU运行deepseek指南

之前写了一篇AMD 锐龙8745H/8845H 通过ollama使用GPU运行deepseek指南,有小伙伴说有没有通过LM Studio使用GPU运行deepseek的指南,这里安排上,通过LM Studio使用GPU运行deepseek还是比较简单的,比起ollama操作起来省事点,不需要再去下载Rocm库了。

安装LM Studio

访问官网https://lmstudio.ai/ ,根据自己的操作系统下载安装包,点击安装包下一步 下一步即可

image-20250301102021132

安装后打开界面如下

image-20250301105133601

如果打开后语言不是中文可以点击右下角的⚙进行设置

image-20250301105223997

下载模型

AMD 锐龙8745H/8845H 使用GPU运行deepseek指南

最近deepseek很火,我也来蹭一波热度,本次是使用自己的迷你电脑联想(Lenovo)来酷MINI PRO来跑的,机器是很迷你,外观如下图

图片

锐龙7 8745H 对比锐龙7 8845H 主频低一点且没有NPU但是价格降了,NPU暂时也用不上,总体性能还不错,性价比也很高,叠加国补当时购买价格2446, 还送了一套联想小新K1轻音键鼠套装,配置如图(BIOS中我给核显分配了8g内存)

image-20250301134312310

目前用这个机器运行ollama ,如下图发现还是使用cpu和内存跑的而不是使用GPU,虽然速度勉强能行,但是总感觉有遗憾。(最后有GPU运行的视频)

image-20250301134330577

Ollama 通过 AMD ROCm 库提供支持,需满足以下条件:

  • Linux 系统:支持 Radeon RX 系列(如 7900 XTX、6800 XT)、Radeon PRO 系列(如 W7900、V620)及 Instinct 加速卡(如 MI300X)。
  • Windows 系统(ROCm v6.1+):支持部分 Radeon RX 和 PRO 系列显卡(如 7900 XTX、W6800)。
  • 特殊覆盖设置:若显卡未被官方支持(如 RX 5400),可通过环境变量 HSA_OVERRIDE_GFX_VERSION 强制匹配相近的 LLVM 目标(如 gfx1030)。

我们可以查看 amd 显卡是否支持 ROCm
访问:rocm.docs.amd.com,查看是否有你的显卡型号,如果有,再看列表后面的 HIP SDK 是否为打勾,两者满足时直接下载并安装 AMD 官方版本的 ROCm 和 Ollama 的官方版本就能使用。

image-20250301134421653

prometheus监控集群外机器的node-exporter的两种方式

背景

使用kube-prometheus项目在kubernetes集群里部署了prometheus监控,中间件的独立部署在集群外的服务器上的,本来是对中间件有监控,但是这批服务器比较拉,之前经历过五台机器同时发生重启的情况,这里还是要监控mysql/redis/es的的机器。

安装

https://github.com/prometheus/node_exporter/releases下载安装包,这里我选择下载1.8.2

1
2
3
4
cd /opt
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xf node_exporter-1.8.2.linux-amd64.tar.gz
mv node_exporter-1.8.2.linux-amd64 node_exporter

创建一个用户用于启动node_exporter,提升安全性

1
2
3
groupadd prometheus 
useradd -g prometheus -s /sbin/nologin prometheus
chown -R prometheus:prometheus /opt/node_exporter/

创建一个systemd文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cat   /usr/lib/systemd/system/node_exporter.service

[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/opt/node_exporter/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动

Cloudflare 代理dockerhub的两种方式

前提条件:

1、一个cloudflare账号

2、一个域名

使用 Cloudflare Workers 来部署我们的镜像加速服务,这里我的账号是使用的免费计划,每天100,000次请求,个人用足够了

首先安装 wrangler 命令行工具 https://developers.cloudflare.com/workers/cli-wrangler/install-update

安装后执行 wrangler login 会自动跳转到浏览器进行身份验证,我们在页面中选择allow

image-20240611171124989

image-20240611160122394

方式一

安装

分析redis 大key

使用rdbtools工具

redis-rdb-tools 是一个 python 的解析 rdb 文件的工具,在分析内存的时候,我们主要用它生成内存快照。

主要有以下三个功能:

  • 生成内存快照
  • 转储成 json 格式
  • 使用标准的 diff 工具比较两个 dump 文件

安装

1
2
3
pip install rdbtools python-lzf
# 在安装python-lzf之前,要安装python-devel依赖包,否则安装会失败
yum install python-devel

rdbtools工具包括了3个可执行文件:

rdb – 解析整个rdb文件
redis-memory-for-key – 解析server里的单个key
redis-profiler –解析rdb文件成html格式

命令help

1、rdb –help:解析整个rdb文件

docker/buildkit 构建问题

环境背景: ack集群,gitlab-runner 运行在k8s中

早上一来同事告诉我好几个项目CI构建都在构建镜像阶段失败

image-20220818113710747查看日志如下:

1
2
3
4
5
6
$ buildctl-daemonless.sh  --debug  build --frontend=dockerfile.v0 --local context=. --local dockerfile=. --output type=image,name=${IMAGE_TAG},push=true --opt    build-arg:BUILD_DIR=${BUILD_ARGS}
could not connect to unix:///run/user/1000/buildkit/buildkitd.sock after 10 trials
========== log ==========
time="2022-08-18T02:24:19Z" level=warning msg="/proc/sys/user/max_user_namespaces needs to be set to non-zero."
[rootlesskit:parent] error: failed to start the child: fork/exec /proc/self/exe: no space left on device
sh: can't kill pid 23: No such process

内心有点懵逼,我最近也没动过CI的流程,查看了一下docker的文档,发现此错误会出现在/proc/sys/user/max_user_namespaces太小时,想看可能是凌晨时候这个k8s集群增加了一台服务器,流水线的这个pod被调度到新的机器上,查看一下新机器的max_user_namespaces,比较偷懒,没有登陆服务器,直接在阿里云控制台远程执行,如下:

image-20220818112255795

image-20220818112304261

max_user_namespaces值果真是0,使用如下命令修改:

1
2
sudo  echo "user.max_user_namespaces=28633" >> /etc/sysctl.conf
sudo sysctl --system

再次构建命令发现如下报错:

K8s环境清理节点上旧的镜像

当我们使用kubernetes集群时,节点上会积累很多不再使用的镜像,虽然kubelet设置的有镜像回收的阈值,但是默认阈值为85%,日常使用中旧的镜像还是会占用很多磁盘空间,可以根据自己容器运行时来使用如下方式清理

docker

1
2
docker image  prune  -f
docker image prune -a -f

image-20211119133016666

Containers

首先下载crictl

1
2
3
4
5
6
#!/bin/bash

wget https://github.91chi.fun//https://github.com//kubernetes-sigs/cri-tools/releases/download/v1.22.0/crictl-v1.22.0-linux-amd64.tar.gz
tar xf crictl-v1.22.0-linux-amd64.tar.gz
\mv -f crictl /usr/bin/
/usr/bin/crictl rmi --prune

image-20211119111119894

如果需要写到cron作为定时任务运行则需要

1
crictl --runtime-endpoint unix:///run/containerd/containerd.sock  rmi --prune 
记一次kuboard故障—Etcd空间爆满

kuboard是一个给研发使用的k8s dashboard ,研发告诉说我打不开了,打开页面发现页面500 无法访问(此处无图,忘了截图保存了)

首先查看了一个pod状态都正常

1
2
3
4
5
6
7
[root@dev-tools ~]# kubectl -n kuboard  get pod
NAME READY STATUS RESTARTS AGE
kuboard-etcd-0 1/1 Running 0 26d
kuboard-etcd-1 1/1 Running 0 162d
kuboard-etcd-2 1/1 Running 0 155d
kuboard-v3-57b6fbcf4f-dglkk 1/1 Running 0 153d

想偷个懒,先祭出祖传重启大法看看能不能打开

1
2
kubectl -n kuboard  rollout  restart deployment  kuboard-v3
kubectl -n kuboard rollout restart statefulset kuboard-etcd

重启后还是打不开,于是开始查看日志

kuboard日志

1
2
3
4
{"level":"warn","ts":"2023-04-12T14:38:31.018+0800","caller":"clientv3/retry_interceptor.go:61","msg":"retrying of unary invoker failed","target":"endpoint://client-5cd98b97-dba1-498e-ae6f-4bcf1408145f/kuboard-etcd-0.kuboard-etcd:2379","attempt":0,"error":"rpc error: code = ResourceExhausted desc = etcdserver: mvcc: database space exceeded"}
time="2023-04-12T06:38:31Z" level=error msg="Failed to create authorization request: etcdserver: mvcc: database space exceeded"
[GIN] 2023/04/12 - 14:38:31 | 500 | 7.722147ms | 106.15.137.195 | GET "/sso/auth?access_type=offline&client_id=kuboard-sso&redirect_uri=%2Fcallback&response_type=code&scope=openid+profile+email+groups&state=%2Fkuboard%2Fcluster&connector_id=gitlab"
{"level":"warn","ts":"2023-04-12T14:38:32.750+0800","caller":"clientv3/retry_interceptor.go:61","msg":"retrying of unary invoker failed","target":"endpoint://client-5cd98b97-dba1-498e-ae6f-4bcf1408145f/kuboard-etcd-0.kuboard-etcd:2379","attempt":0,"error":"rpc error: code = ResourceExhausted desc = etcdserver: mvcc: database space exceeded"}

etcd日志

1
2
3
4
2023-04-12 06:38:05.763042 W | etcdserver: failed to apply request "header:<ID:12031796812563778311 > txn:<compare:<target:CREATE key:\"kuboard-sso-namespace/auth_req/rmq7qrteaen47y5kdvf3y32w5\" create_revision:0 > success:<request_put:<key:\"kuboard-sso-namespace/auth_req/rmq7qrteaen47y5kdvf3y32w5\" value_size:427 >> failure:<>>" with response "" took (481ns) to execute, err is etcdserver: no space
2023-04-12 06:38:05.763071 W | etcdserver: failed to apply request "header:<ID:12031796812563778314 > txn:<compare:<target:CREATE key:\"kuboard-sso-namespace/auth_req/ym7vdka6tote5euge43on5lj4\" create_revision:0 > success:<request_put:<key:\"kuboard-sso-namespace/auth_req/ym7vdka6tote5euge43on5lj4\" value_size:411 >> failure:<>>" with response "" took (320ns) to execute, err is etcdserver: no space
2023-04-12 06:38:05.763086 W | etcdserver: failed to apply request "header:<ID:12031796812563778315 > txn:<compare:<target:CREATE key:\"kuboard-sso-namespace/auth_req/b2zt4l2qlu5kdfgp62cvdpsby\" create_revision:0 > success:<request_put:<key:\"kuboard-sso-namespace/auth_req/b2zt4l2qlu5kdfgp62cvdpsby\" value_size:411 >> failure:<>>" with response "" took (360ns) to execute, err is etcdserver: no space
2023-04-12 06:38:05.763102 W | etcdserver: failed to apply request "header:<ID:12031796812563778316 > txn:<compare:<target:CREATE key:\"kuboard-sso-namespace/auth_req/iycfih7p4u45ckbhcjydx4nq2\" create_revision:0 > success:<request_put:<key:\"kuboard-sso-namespace/auth_req/iycfih7p4u45ckbhcjydx4nq2\" value_size:372 >> failure:<>>" with response "" took (270ns) to execute, err is etcdserver: no space
Umami 安装并升级到v2.x

Umami 是一种开源、注重隐私的 Google Analytics 替代品。Umami 为您提供了一个强大的网络分析解决方案,不会侵犯您用户的隐私。此外,当您自行托管 Umami 时,您可以完全控制您的数据。

目前看好像直接安装v2.x无法成功,这里采用先安装v1.x然后升级至v2.x。

当前latest版本为v2.2.0

安装v1.x

要求

  • 具有 Node.js 版本 12 或更高版本的服务器
  • 一个数据库。Umami 支持MySQLPostgresql数据库。

首先安装1.40.0版本的umami

1
2
3
4
git clone -b v1.40.0 https://github.com/umami-software/umami.git
cd umami
这里我们可以把docker-compose.yml文件中的postgresql镜像版本给为 postgres:15-alpine
docker-compose up -d

启动后访问127.0.0.1:3000查看一下页面是否正常,账号admin 密码umami

image-20230505134745399

avatar
misterli
大风起兮云飞扬
FRIENDS
baidu google