Kubespray 部署生产级 k8s 集群

kubespray 是基于 ansible 开发的一套 K8s 生命周期管理软件,由 k8s 官方 sig 维护。

遇到问题多读文档,搞清楚命令意味着什么再操作。

部署方法

获取部署程序

# 从 kubespray 官方仓库拉取
git clone --depth=1 https://github.com/kubernetes-sigs/kubespray.git
# 切换到 v2.26.0 版本,不同版本对应支持不同 k8s 版本,根据需要切换
git checkout v2.26.0

# 进入部署程序目录
cd kubespray

# 创建 python 虚拟环境,激活,并安装依赖
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r  requirements.txt

定义部署节点信息

# 从集群配置模板拷贝一份
cp -rfp inventory/sample inventory/mycluster

# 定义节点 IP 清单,将 IP 更换为自己节点的 IP
declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

# 根据需要调整节点角色
inventory/mycluster/hosts.yaml

执行以上命令后会在生成一份节点角色清单在 inventory/mycluster/hosts.yaml 路径下,可以根据需要调整,如调整希望作为 master 的节点、运行 etcd 的节点、作为 worker 的节点等。

定义部署 集群信息

根据需要配置集群:

  • inventory/mycluster/group_vars/all/*.yml
  • inventory/mycluster/group_vars/k8s-cluster/*.yml

可以定义部署的 K8s 版本、使用的容器运行时、CNI、Ingress 等内容,具体看注释。

开始部署

# 可选,清理旧集群,若怀疑有残留可以运行这个清理,也可跳过
ansible-playbook -i inventory/mycluster/hosts.yaml  --become --become-user=root reset.yml

# 开始部署
ansible-playbook -i inventory/mycluster/hosts.yaml  --become --become-user=root cluster.yml

若调整了集群配置,重新运行部署即可。

reset.yml 亦可用于销毁集群,谨慎操作.

扩容

扩容貌似再次执行一次部署命令也可,也可运行例如下面的命令,供参考。

ansible-playbook \
  -i inventory/mycluster/inventory.ini \
  --private-key=id_rsa \
  --user=root -b \
  scale.yml

缩容

使用以下命令运行 remote-node.yml 即可,将 node 变量指向希望移除的节点,命令供参考。

ansible-playbook \
  -i inventory/mycluster/inventory.ini \
  --private-key=id_rsa \
  --user=ubuntu -b \
  --extra-vars "node=node1,node2" \
  remove-node.yml

--extra-vars 里写要移出的节点名列表,如果节点已经卡死,无法通过 SSH 登录,可以在 --extra-vars 加个 reset_nodes=false 的选项,跳过第二个步骤。

References

#Kubernetes #Kubespray

OpenWRT 软件源整理

软件源整理

官方镜像站

  1. OpenWRT官方下载站点
  • URL: https://downloads.openwrt.org/
  • 这是 OpenWRT的主站点,提供所有官方版本的固件和软件包。该站点是获取最新稳定版、开发版(snapshot)和历史版本的主要来源。
  1. OpenWRT官方GitHub仓库
  • URL: https://github.com/openwrt/openwrt
  • 虽然主要用于代码存储和开发,但也提供了一些资源和文档链接。

国内镜像站

  1. 清华大学开源软件镜像站
  • URL: https://mirrors.tuna.tsinghua.edu.cn/openwrt
  • 提供了OpenWRT各个版本的镜像,非常稳定和快速。
  1. 中科大开源镜像站
  • URL: https://mirrors.ustc.edu.cn/openwrt
  • 也是一个非常可靠的镜像源,提供OpenWRT的各个版本。
  1. 阿里云开源镜像站
  • URL: https://mirrors.aliyun.com/openwrt
  • 提供稳定的OpenWRT镜像下载服务。
  1. 重庆大学开源镜像站
  • URL: https://mirrors.cqu.edu.cn/openwrt/
  • 同样是一个可以选择的国内镜像源。
  1. 南京大学开源镜像站
  • URL: https://mirror.nju.edu.cn/openwrt/
  • 提供了OpenWRT的多版本支持。
  1. 上海交通大学开源镜像站
  • URL: https://mirror.sjtu.edu.cn/openwrt/
  • 提供稳定的开源软件镜像服务。
  1. 兰州大学开源镜像站
  • URL: https://mirror.lzu.edu.cn/openwrt/
  • 提供多个开源项目的镜像下载。界面有点意思。
  1. 浙江大学开源镜像站
  • URL: https://mirrors.zju.edu.cn/openwrt/
  • 提供多种开源软件项目的镜像。

个人镜像站

  1. OpenWRT.AI软件仓库:
  • URL: https://dl.openwrt.ai/
  • Kiddin9的自建软件仓库,目前只支持OpenWRT 23.05版本。

如何选择和使用镜像站

在OpenWRT路由器上配置官方软件源通常不需要额外操作,因为默认情况下,OpenWRT已经配置了官方软件源。只需运行opkg update命令以确保软件包列表是最新的。

要使用这些镜像源,您需要修改OpenWRT路由器上的,可以查看 /etc/opkg/customfeeds.conf 文件,确保根据您所使用的OpenWRT版本和设备架构进行正确配置。

配置示例

src/gz openwrt_core https://mirror.bjtu.edu.cn/openwrt/releases/
<version>/targets/<target>/packages
src/gz openwrt_base https://mirror.bjtu.edu.cn/openwrt/releases/
<version>/packages/<architecture>/base
src/gz openwrt_luci https://mirror.bjtu.edu.cn/openwrt/releases/
<version>/packages/<architecture>/luci
src/gz openwrt_packages https://mirror.bjtu.edu.cn/openwrt/releases/
<version>/packages/<architecture>/packages
src/gz openwrt_routing https://mirror.bjtu.edu.cn/openwrt/releases/
<version>/packages/<architecture>/routing
src/gz openwrt_telephony https://mirror.bjtu.edu.cn/openwrt/releases/
<version>/packages/<architecture>/telephony

将上述内容中的https://mirror.bjtu.edu.cn/openwrt/替换为你想要使用的OpenWRT软件源地址,同时注意后面的`

`为版本号,需要修改为你OpenWRT的版本号,“ 为系统架构,需要修改为你对应的系统架构,例如`X86_64` #### 命令行替换方法 或者通过命令行方式进行修改,格式为`s,[原来的软件源地址],[替换的软件源地址],g` “`plain sed -e ‘s,https://downloads.openwrt.org,https://mirror.bjtu.edu.cn/openwrt,g’ \ -e ‘s,https://downloads.openwrt.org,https://mirror.bjtu.edu.cn/openwrt,g’ \ -i.bak /etc/opkg/customfeeds.conf “` Plain text 替换完成后通过`opkg update`进行更新。 #### 注意事项 OpenWRT官方版软件源并不一定完全匹配第三方定植后的固件,例如esir、Leon大佬等定制的固件,可能存在库不全或兼容问题。同时官方版本软件源提供的`k-mod-*.ipk` 软件包也可能存在无法直接安装的情况。 如果你是一个新手,或者只想将OpenWRT系统配置起来养老,那么推荐使用[ImmortalWRT](https://github.com/immortalwrt/immortalwrt),在软件源支持方面可能会更好一些,同时也可以自定义配置国内软件源[immoralwrt-opkg-replace-edu-mirror](https://www.dolingou.com/article/immoralwrt-opkg-replace-edu-mirror) ## References * [🖥️OpenWRT 软件源整理](https://www.dolingou.com/article/Compilation-of-OpenWRT-Software-Sources)

镜像操作神器 skopeo 用法总结

skopeo 是一个命令行工具,可对容器镜像和容器存储进行操作。 在没有dockerd的环境下,使用 skopeo 操作镜像是非常方便的。

安装

包管理器

# RHEL / CentOS Stream ≥ 8
sudo dnf install skopeo

# RHEL/CentOS ≤ 7.x
yum install skopeo

# openSUSE:
sudo zypper install skopeo

# alpine:
sudo apk add skopeo

# macOS:
brew install skopeo

# ArchLinux
sudo pacman -S skopeo

其他系统见 安装文档

编译安装

git clone https://github.com/containers/skopeo skopeo
cd !$
git checkout v1.0.0
make binary-static DISABLE_CGO=1
cp skopeo /usr/local/bin/

使用

在使用 skopeo 之前,我们首先要知道在命令行中镜像的格式

需要注意的是,这几种镜像的名字,对应着镜像存在的方式,不同存在的方式对镜像的 layer 处理的方式也不一样,比如 docker:// 这种方式是存在 registry 上的,docker-daemon: 是存在本地 docker pull 下来的,再比如 docker-archive 是通过 docker save 出来的镜像。同一个镜像有这几种存在的方式就像水有气体、液体、固体一样。可以这样去理解,他们表述的都是同一个镜像,只不过是存在的方式不一样而已。

IMAGE NAMES example
containers-storage: containers-storage:
dir: dir:/PATH
docker:// docker://k8s.gcr.io/kube-apiserver:v1.17.5
docker-daemon: docker-daemon:alpine:latest
docker-archive: docker-archive:alpine.tar (docker save)
oci: oci:alpine:latest

命令选项

# skopeo --help
NAME:
   skopeo - Various operations with container images and container image registries

USAGE:
   skopeo [global options] command [command options] [arguments...]

VERSION:
   0.1.37

COMMANDS:
     copy               Copy an IMAGE-NAME from one location to another
     inspect            Inspect image IMAGE-NAME
     delete             Delete image IMAGE-NAME
     manifest-digest    Compute a manifest digest of a file
     standalone-sign    Create a signature using local files
     standalone-verify  Verify a signature using local files
     help, h            Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --debug                  enable debug output
   --policy value           Path to a trust policy file
   --insecure-policy        run the tool without any policy check
   --registries.d DIR       use registry configuration files in DIR (e.g. for container signature storage)
   --override-arch ARCH     use ARCH instead of the architecture of the machine for choosing images
   --override-os OS         use OS instead of the running OS for choosing images
   --command-timeout value  timeout for the command execution (default: 0s)
   --help, -h               show help
   --version, -v            print the version

可以看到 skopeo 的功能很简单:

  • copy:复制一个镜像从 A 到 B,这里的 A 和 B 可以为本地 docker 镜像或者 registry 上的镜像。
  • inspect:查看一个镜像的 manifest 火车 image config 详细信息
  • delete:删除一个镜像,可以是本地 docker 镜像或者 registry 上的镜像
  • list-tags:列出一个 registry 上某个镜像的所有 tag
  • login:登录到某个 registry,和 docker login 类似
  • logout: 退出已经登录到某个 registry 的 auth 信息,和 docker logout 类似
  • manifest-digeststandalone-signstandalone-verify 这三个用的不多
  • sync:同步一个镜像从 A 到 B,感觉和 copy 一样,但 sync 支持的参数更多,功能更强大

获取镜像的信息

skopeo 可以在不用下载镜像的情况下,获取镜像信息

# skopeo inspect docker://docker.io/centos
{
    "Name": "docker.io/library/centos",
    "Digest": "sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700",
    "RepoTags": [
        "5.11",
        "5",
        "6.10",
        "6.6",
        "6.7",
        "6.8",
        "6.9",
        "6",
        "7.0.1406",
        "7.1.1503",
        "7.2.1511",
        "7.3.1611",
        "7.4.1708",
        "7.5.1804",
        "7.6.1810",
        "7.7.1908",
        "7",
        "8.1.1911",
        "8",
        "centos5.11",
        "centos5",
        "centos6.10",
        "centos6.6",
        "centos6.7",
        "centos6.8",
        "centos6.9",
        "centos6",
        "centos7.0.1406",
        "centos7.1.1503",
        "centos7.2.1511",
        "centos7.3.1611",
        "centos7.4.1708",
        "centos7.5.1804",
        "centos7.6.1810",
        "centos7.7.1908",
        "centos7",
        "centos8.1.1911",
        "centos8",
        "latest"
    ],
    "Created": "2020-01-18T00:26:46.850750902Z",
    "DockerVersion": "18.06.1-ce",
    "Labels": {
        "org.label-schema.build-date": "20200114",
        "org.label-schema.license": "GPLv2",
        "org.label-schema.name": "CentOS Base Image",
        "org.label-schema.schema-version": "1.0",
        "org.label-schema.vendor": "CentOS",
        "org.opencontainers.image.created": "2020-01-14 00:00:00-08:00",
        "org.opencontainers.image.licenses": "GPL-2.0-only",
        "org.opencontainers.image.title": "CentOS Base Image",
        "org.opencontainers.image.vendor": "CentOS"
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Layers": [
        "sha256:8a29a15cefaeccf6545f7ecf11298f9672d2f0cdaf9e357a95133ac3ad3e1f07"
    ]
}

docker://: 是使用 Docker Registry HTTP API V2 进行连接远端 docker.io: 远程仓库 centos: 镜像名称

也可以获取本地dockerd的镜像信息

# skopeo inspect docker-daemon:ubuntu:latest
{
    "Name": "docker.io/library/ubuntu",
    "Digest": "sha256:004d05bd520c5c386fb8322d6081f4de567a9417e1ba8e5071663d7811992c88",
    "RepoTags": [],
    "Created": "2020-03-20T19:20:22.835345724Z",
    "DockerVersion": "18.09.7",
    "Labels": null,
    "Architecture": "amd64",
    "Os": "linux",
    "Layers": [
        "sha256:c8be1b8f4d60d99c281fc2db75e0f56df42a83ad2f0b091621ce19357e19d853",
        "sha256:977183d4e9995d9cd5ffdfc0f29e911ec9de777bcb0f507895daa1068477f76f",
        "sha256:6597da2e2e52f4d438ad49a14ca79324f130a9ea08745505aa174a8db51cb79d",
        "sha256:16542a8fc3be1bfaff6ed1daa7922e7c3b47b6c3a8d98b7fca58b9517bb99b75"
    ]
}

docker-daemon: docker守护镜像的镜像 ubuntu:latest: 本地镜像的名称

拷贝镜像

注意一下,这里的 location 就是指的上面提到的 IMAGE NAMES ,也就是说 skopeo copy src dest 可以有 6*6=36 种组合!比如我可以将一个镜像从一个 registry 复制到另一个 registry,skopeo copy docker://IMAGE_NAME docker://IMAGE_NAME,再强调一遍,一定要注意 IMAGE_NAME 的命名的格式。

在不使用 docker 的情况下从远端下载镜像

# skopeo --insecure-policy copy docker://nginx:1.17.6 docker-archive:/tmp/nginx.tar
Getting image source signatures
Copying blob 8ec398bc0356 done
Copying blob 465560073b6f done
Copying blob f473f9fd0a8c done
Copying config f7bb5701a3 done
Writing manifest to image destination
Storing signatures
# ls -alh  /tmp/nginx.tar 
-rw-r--r-- 1 root root 125M 4月  13 15:22 /tmp/nginx.tar

--insecure-policy: 用于忽略安全策略配置文件 docker://nginx:1.17.6: 该命令将会直接通过 http 下载目标镜像 docker-archive: 存储为 /tmp/nginx.tar,此文件可以直接通过 docker load 命令导入

相应的,可以将下载的文件导入到本地

# skopeo copy docker-archive:/tmp/nginx.tar docker-daemon:nginx:latest
Getting image source signatures
Copying blob 556c5fb0d91b done
Copying blob 49434cc20e95 done
Copying blob 75248c0d5438 done
Copying config f7bb5701a3 done
Writing manifest to image destination
Storing signatures

# docker images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        3 months ago        126MB

也可以将镜像下载到指定目录

# skopeo copy docker://busybox:latest dir:/tmp/busybox
Getting image source signatures
Copying blob 0669b0daf1fb done
Copying config 83aa35aa1c done
Writing manifest to image destination
Storing signatures

# ls -alh /tmp/busybox/
总用量 760K
drwxr-xr-x   2 root root  186 4月  13 15:26 .
drwxrwxrwt. 12 root root 4.0K 4月  13 15:25 ..
-rw-r--r--   1 root root 743K 4月  13 15:26 0669b0daf1fba90642d105f3bc2c94365c5282155a33cc65ac946347a90d90d1
-rw-r--r--   1 root root 1.5K 4月  13 15:26 83aa35aa1c79e4b6957e018da6e322bfca92bf3b4696a211b42502543c242d6f
-rw-r--r--   1 root root  527 4月  13 15:26 manifest.json
-rw-r--r--   1 root root   33 4月  13 15:25 version

或者从指定目录导入到本地

# skopeo copy dir:/tmp/busybox docker-daemon:busybox:latest
Getting image source signatures
Copying blob 0669b0daf1fb done
Copying config 83aa35aa1c done
Writing manifest to image destination
Storing signatures
# docker images busybox
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              83aa35aa1c79        4 weeks ago         1.22MB

其他命令

skopeo --debug copy docker-archive:/dev/stdin containers-storage:foo < /tmp/nginx.tar

删除镜像

skopeo delete docker://localhost:5000/nginx:latest

认证文件

认证文件默认存放在 $HOME/.docker/config.json

文件内容

{
    "auths": {
        "myregistrydomain.com:5000": {
            "auth": "dGVzdHVzZXI6dGVzdHBhc3N3b3Jk",
            "email": "stuf@ex.cm"
        }
    }
}

其他参数

# 跳过源地址的 tls
skopeo copy docker://192.168.25.8:5000/library/registry:latest  oci-archive:registry-latest.tar --src-tls-verify=false

# 跳过验证 tls
skopeo list-tags --tls-verify=false docker://dockerio.vkvmsg1.skybyte.me/library/registry
# 注意这里 dockerio 的顶级镜像自行补全 library 前缀

References

#Docker #Containerd #Kubernetes

开源项目管理软件对比总结

以下是 Kanboard、Wekan、Taiga、OpenProject 和 Redmine 这五个软件的对比表格:

功能/属性 Kanboard Wekan Taiga OpenProject Redmine
软件类型 项目管理 项目管理 项目管理及敏捷开发 项目管理及协作 项目管理
开源
界面语言 多语言支持 多语言支持 多语言支持 多语言支持 多语言支持
主要功能 看板、任务管理、时间跟踪 看板、任务管理 敏捷管理、Scrum、Kanban 甘特图、时间跟踪、资源管理 问题跟踪、甘特图、日历
安装方式 自托管、Docker 自托管、Docker 自托管、云托管、Docker 自托管、云托管、Docker 自托管、云托管、Docker
集成功能 少量插件、API API、与其他系统集成 GitHub、GitLab、Slack 等 多种插件、API 丰富的插件与API支持
适用团队规模 小型到中型 小型到中型 中型到大型,可扩展 小型到大型 小型到大型
界面友好性 简单直观 简单直观 现代但稍复杂 功能丰富但可能更复杂 简单直观,但界面略显陈旧
社区活跃度 中等
移动应用支持 第三方应用或网页 无官方移动应用 无官方移动应用
特别支持功能 强调简单性和看板视图 实时协作和活动流 支持敏捷项目管理流程 适合多种项目管理方法 自定义字段、复杂权限管理

Redmine 是一个久经考验的项目管理和问题跟踪工具,以其强大的可扩展性和插件系统而著称。它适合那些需要高度定制化和强大问题跟踪功能的团队。

Linux 使用 rinetd 实现端口转发重定向

工具介绍

linux 下简单好用的工具 rinetd,实现端口映射 / 转发 / 重定向。

用于有效地将连接从一个 IP 地址 / 端口组合重定向到另一 IP 地址 / 端口组合。在操作虚拟服务器、防火墙等时很有用。

Rinetd 是单一过程的服务器,它处理任何数量的连接到在配置文件 etc/rinetd 中指定的地址 / 端口对。尽管 rinetd 使用非闭锁 I/O 运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。

官网地址:http://www.boutell.com/rinetd

软件安装

方法一:压缩包

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar zxvf rinetd.tar.gz
make
make install

方法二:apt-get

apt-cache search rinetd
apt-get install rinetd -y

软件配置

配置文件格式:

[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口

在每一单独的行中指定每个要转发的端口。源地址和目的地址都可以是主机名或 IP 地址,IP 地址 0.0.0.0 将 rinetd 绑定到任何可用的本地 IP 地址上。

例如:

vi /etc/rinetd.conf
0.0.0.0 8080 172.19.94.3 8080
0.0.0.0 2222 192.168.0.103 3389
1.2.3.4 80     192.168.0.10 80

说明一下(0.0.0.0 表示本机绑定所有可用地址)

  • 将所有发往本机 8080 端口的请求转发到 172.19.94.3 的 8080 端口
  • 将所有发往本机 2222 端口的请求转发到 192.168.0.103 的 3389 端口
  • 将所有发往 1.2.3.4 的 80 端口请求转发到 192.168.0.10 的 80 端口

使用 systemd 管理:

systemctl status rinetd

注意事项

  1. rinetd.conf 中绑定的本机端口必须没有被其它程序占用。
  2. 运行 rinetd 的系统防火墙应该打开绑定的本机端口。

例如:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1111 -jACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -jACCEPT

References

mysql bin 日志过大处理方法

我来帮您解决 MySQL binlog 文件占用空间过大的问题。以下是几个处理方案:

  1. 清理旧的 binlog 文件
    
    -- 查看当前的 binlog 文件列表
    SHOW BINARY LOGS;

— 手动删除指定日期之前的 binlog PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);

— 或者删除指定文件之前的所有日志 PURGE BINARY LOGS TO ‘mysql-bin.000123’;


2. **设置 binlog 自动清理策略**
```sql
-- 设置 binlog 保留天数(比如保留7天)
SET GLOBAL expire_logs_days = 7;

-- MySQL 8.0之后使用以下命令
SET GLOBAL binlog_expire_logs_seconds = 604800; -- 7天 = 7*24*60*60秒
  1. 修改配置文件优化my.cnfmy.ini 中添加:
    
    # 设置 binlog 过期时间(天)
    expire_logs_days = 7

MySQL 8.0+ 使用

binlog_expire_logs_seconds = 604800

设置单个 binlog 文件的最大值(默认1G)

max_binlog_size = 100M



建议采取的步骤:

1. 首先备份重要数据
2. 检查是否真的需要 binlog(如果不需要复制功能,可以考虑关闭)
3. 设置合理的过期时间
4. 定期监控 binlog 空间使用情况

注意事项:
- 清理前确保相关的从库已经同步完成
- 不要删除正在使用的 binlog 文件
- 建议在业务低峰期进行清理
- 可以考虑将 binlog 存放在独立的大容量磁盘上

如果您只是临时需要清理空间,使用 `PURGE BINARY LOGS` 是最快的方法。但从长远来看,建议同时设置自动过期策略,避免再次出现空间占用过大的情况。

# References
* [Mysql binlog日志太多,占用大量磁盘空间该如何正确处理](https://www.cnblogs.com/yanling-coder/p/12733096.html)

#MySQL

BWH-DC99

相关信息:

  • 厂商:BandwagonHost
  • 型号:DC99-MINIBOX-10-512
  • 规格:1C/512G
  • 磁盘:10G
  • 流量:500G
  • 位置:美国/洛杉矶
  • 价格:29USD/年
  • 年付人民币:209.69 RMB

测试脚本:

# 硬件基准
curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh -m 4 3

测试结果

硬件

--------------------- A Bench Script By spiritlhl ----------------------  
                  测评频道: https://t.me/vps_reviews                       
VPS融合怪版本:2024.11.08  
Shell项目地址:https://github.com/spiritLHLS/ecs  
Go项目地址:https://github.com/oneclickvirt/ecs  
---------------------基础信息查询--感谢所有开源项目---------------------  
CPU 型号          : AMD EPYC Processor (with IBPB)  
CPU 核心数        : 1  
CPU 频率          : 2345.592 MHz  
CPU 缓存          : L1: 32.00 KB / L2: 512.00 KB / L3: 8.00 MB  
AES-NI指令集      : ✔ Enabled  
VM-x/AMD-V支持    : ❌ Disabled  
内存              : 192.75 MiB / 536.52 MiB  
Swap              : 146.05 MiB / 297.00 MiB  
硬盘空间          : 3.24 GiB / 10.17 GiB  
启动盘路径        : /dev/sda2  
系统在线时间      : 5 days, 14 hour 11 min  
负载              : 3.15, 1.45, 0.59  
系统              : Rocky Linux 9.5 (Blue Onyx) (x86_64)  
架构              : x86_64 (64 Bit)  
内核              : 5.14.0-70.13.1.el9_0.x86_64  
TCP加速方式       : bbr  
虚拟化架构        : KVM  
NAT类型           : Port Restricted Cone  
IPV4 ASN          : AS25820 IT7 Networks Inc  
IPV4 位置         : Los Angeles / California / US  
----------------------CPU测试--通过sysbench测试-------------------------  
-> CPU 测试中 (Fast Mode, 1-Pass @ 5sec)  
1 线程测试(单核)得分:          1617 Scores  
---------------------内存测试--感谢lemonbench开源-----------------------  
-> 内存测试 Test (Fast Mode, 1-Pass @ 5sec)  
单线程读测试:          43469.68 MB/s  
单线程写测试:          19670.31 MB/s  
------------------磁盘dd读写测试--感谢lemonbench开源--------------------  
-> 磁盘IO测试中 (4K Block/1M Block, Direct Mode)  
测试操作               写速度                                  读速度-  
100MB-4K Block         24.4 MB/s (5958 IOPS, 4.30s)            33.2 MB/s (8108 IOPS, 3.16s)  
1GB-1M Block           1.5 GB/s (1449 IOPS, 0.69s)             1.8 GB/s (1671 IOPS, 0.60s)  
---------------------磁盘fio读写测试--感谢yabs开源----------------------  
Block Size | 4k            (IOPS) | 64k           (IOPS)  
 ------   | ---            ----  | ----           ----    
Read       | 179.03 MB/s  (44.7k) | 473.11 MB/s   (7.3k)  
Write      | 179.51 MB/s  (44.8k) | 475.60 MB/s   (7.4k)  
Total      | 358.54 MB/s  (89.6k) | 948.72 MB/s  (14.8k)  
          |                      |                        
Block Size | 512k          (IOPS) | 1m            (IOPS)  
 ------   | ---            ----  | ----           ----    
Read       | 769.15 MB/s   (1.5k) | 1.01 GB/s      (994)  
Write      | 810.02 MB/s   (1.5k) | 1.08 GB/s     (1.0k)  
Total      | 1.57 GB/s     (3.0k) | 2.10 GB/s     (2.0k)  
------------------------------------------------------------------------  
总共花费      : 2 分 25 秒-  
时间          : Wed Nov 20 13:44:06 CST 2024  
------------------------------------------------------------------------

Hetzner-CX22

相关信息:

  • 厂商:Hetzner
  • 型号:CX22
  • 规格:2C/4G
  • 磁盘:40G
  • 流量:20T
  • 位置:德国/纽伦堡
  • 价格:3.29欧元/月
  • 年付人民币:302.96

测试脚本:

# 硬件基准
curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh -m 4 3

测试结果

硬件

--------------------- A Bench Script By spiritlhl ----------------------  
                  测评频道: https://t.me/vps_reviews                       
VPS融合怪版本:2024.11.08  
Shell项目地址:https://github.com/spiritLHLS/ecs  
Go项目地址:https://github.com/oneclickvirt/ecs  
---------------------基础信息查询--感谢所有开源项目---------------------  
CPU 型号          : Intel Xeon Processor (Skylake, IBRS, no TSX)  
CPU 核心数        : 2  
CPU 频率          : 2294.608 MHz  
CPU 缓存          : L1: 64.00 KB / L2: 8.00 MB / L3: 16.00 MB  
AES-NI指令集      : ✔ Enabled  
VM-x/AMD-V支持    : ❌ Disabled  
内存              : 331.96 MiB / 3.73 GiB  
Swap              : [ no swap partition or swap file detected ]  
硬盘空间          : 11.04 GiB / 37.24 GiB  
启动盘路径        : /dev/sda1  
系统在线时间      : 28 days, 15 hour 51 min  
负载              : 0.32, 0.29, 0.21  
系统              : Debian GNU/Linux 12 (bookworm) (x86_64)  
架构              : x86_64 (64 Bit)  
内核              : 6.1.0-22-amd64  
TCP加速方式       : cubic  
虚拟化架构        : KVM  
NAT类型           : Port Restricted Cone  
IPV4 ASN          : AS24940 Hetzner Online GmbH  
IPV4 位置         : Nürnberg / Bavaria / DE  
IPV6 ASN          : AS24940 Hetzner Online  
IPV6 位置         : Nuremberg / Bavaria / Germany  
IPV6 子网掩码     : 128  
----------------------CPU测试--通过sysbench测试-------------------------  
-> CPU 测试中 (Fast Mode, 1-Pass @ 5sec)  
1 线程测试(单核)得分:          875 Scores  
2 线程测试(多核)得分:          1711 Scores  
---------------------内存测试--感谢lemonbench开源-----------------------  
-> 内存测试 Test (Fast Mode, 1-Pass @ 5sec)  
单线程读测试:          18204.38 MB/s  
单线程写测试:          14082.63 MB/s  
------------------磁盘dd读写测试--感谢lemonbench开源--------------------  
-> 磁盘IO测试中 (4K Block/1M Block, Direct Mode)  
测试操作               写速度                                  读速度-  
100MB-4K Block         16.0 MB/s (3911 IOPS, 6.55s)            21.6 MB/s (5262 IOPS, 4.86s)  
1GB-1M Block           609 MB/s (580 IOPS, 1.72s)              1.1 GB/s (1093 IOPS, 0.91s)  
---------------------磁盘fio读写测试--感谢yabs开源----------------------  
Block Size | 4k            (IOPS) | 64k           (IOPS)  
 ------   | ---            ----  | ----           ----    
Read       | 87.94 MB/s   (21.9k) | 908.62 MB/s  (14.1k)  
Write      | 88.17 MB/s   (22.0k) | 913.40 MB/s  (14.2k)  
Total      | 176.12 MB/s  (44.0k) | 1.82 GB/s    (28.4k)  
          |                      |                        
Block Size | 512k          (IOPS) | 1m            (IOPS)  
 ------   | ---            ----  | ----           ----    
Read       | 973.26 MB/s   (1.9k) | 1.04 GB/s     (1.0k)  
Write      | 1.02 GB/s     (2.0k) | 1.11 GB/s     (1.0k)  
Total      | 1.99 GB/s     (3.9k) | 2.15 GB/s     (2.1k)  
------------------------------------------------------------------------  
总共花费      : 2 分 3 秒-  
时间          : Arb Xim 20  1:44:03 saaku UTC 2024  
------------------------------------------------------------------------

Aliyun-ecs.e-c1m1.large

相关信息:

  • 厂商:Aliyun
  • 型号:ecs.e-c1m1.large
  • 规格:2C/2G
  • 磁盘:40G
  • 流量:~T
  • 带宽:3 Mbps
  • 位置:
  • 价格:99 RMB/年
  • 年付人民币:99

测试脚本:

# 硬件基准
curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh -m 4 3

测试结果

硬件

--------------------- A Bench Script By spiritlhl ----------------------
                   测评频道: https://t.me/vps_reviews                    
VPS融合怪版本:2024.11.08
Shell项目地址:https://github.com/spiritLHLS/ecs
Go项目地址:https://github.com/oneclickvirt/ecs
---------------------基础信息查询--感谢所有开源项目---------------------
 CPU 型号          : Intel(R) Xeon(R) Platinum
 CPU 核心数        : 2
 CPU 频率          : 2500.000 MHz
 CPU 缓存          : L1: 32.00 KB / L2: 1.00 MB / L3: 33.00 MB
 AES-NI指令集      : ✔ Enabled
 VM-x/AMD-V支持    : ❌ Disabled
 内存              : 683.05 MiB / 1.67 GiB
 Swap              : 0 KiB / 4.00 GiB
 硬盘空间          : 27.75 GiB / 39.02 GiB
 启动盘路径        : /dev/vda3
 系统在线时间      : 6 days, 18 hour 36 min
 负载              : 0.55, 0.34, 0.27
 系统              : Debian GNU/Linux 12 (bookworm) (x86_64)
 架构              : x86_64 (64 Bit)
 内核              : 6.1.0-25-amd64
 TCP加速方式       : cubic
 虚拟化架构        : KVM
 NAT类型           : Port Restricted Cone
 IPV4 ASN          : AS37963 Hangzhou Alibaba Advertising Co.,Ltd.
 IPV4 位置         : Guangzhou / Guangdong / CN
----------------------CPU测试--通过sysbench测试-------------------------
 -> CPU 测试中 (Fast Mode, 1-Pass @ 5sec)
 1 线程测试(单核)得分:          1019 Scores
 2 线程测试(多核)得分:          1683 Scores
---------------------内存测试--感谢lemonbench开源-----------------------
 -> 内存测试 Test (Fast Mode, 1-Pass @ 5sec)
 单线程读测试:          3272.20 MB/s
 单线程写测试:          1873.33 MB/s
------------------磁盘dd读写测试--感谢lemonbench开源--------------------
 -> 磁盘IO测试中 (4K Block/1M Block, Direct Mode)
 测试操作               写速度                                  读速度
 100MB-4K Block         6.6 MB/s (1618 IOPS, 15.83s)            5.8 MB/s (1408 IOPS, 18.17s)
 1GB-1M Block           125 MB/s (119 IOPS, 8.37s)              116 MB/s (111 IOPS, 9.00s)
---------------------磁盘fio读写测试--感谢yabs开源----------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 4.33 MB/s     (1.0k) | 55.92 MB/s     (873)
Write      | 4.35 MB/s     (1.0k) | 56.42 MB/s     (881)
Total      | 8.69 MB/s     (2.1k) | 112.35 MB/s   (1.7k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 53.61 MB/s     (104) | 53.38 MB/s      (52)
Write      | 56.52 MB/s     (110) | 57.10 MB/s      (55)
Total      | 110.14 MB/s    (214) | 110.49 MB/s    (107)
------------------------------------------------------------------------
 总共花费      : 5 分 37 秒
 时间          : Wed Nov 20 10:02:31 CST 2024
------------------------------------------------------------------------

Tencent-轻量-2C4G

相关信息:

  • 厂商:Tencent
  • 型号:轻量-新客专享型-2C4G
  • 规格:2C/4G
  • 磁盘:70G
  • 流量:600T
  • 带宽:6 Mbps
  • 位置:中国/广州
  • 价格:159 RMB/年
  • 年付人民币:159

测试脚本:

# 硬件基准
curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh -m 4 3

测试结果

硬件

--------------------- A Bench Script By spiritlhl ----------------------  
                  测评频道: https://t.me/vps_reviews                       
VPS融合怪版本:2024.11.08  
Shell项目地址:https://github.com/spiritLHLS/ecs  
Go项目地址:https://github.com/oneclickvirt/ecs  
---------------------基础信息查询--感谢所有开源项目---------------------  
CPU 型号          : Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz  
CPU 核心数        : 2  
CPU 频率          : 2494.100 MHz  
CPU 缓存          : L1: 64.00 KB / L2: 8.00 MB / L3: 35.75 MB  
AES-NI指令集      : ✔ Enabled  
VM-x/AMD-V支持    : ❌ Disabled  
内存              : 3.07 GiB / 3.70 GiB  
Swap              : [ no swap partition or swap file detected ]  
硬盘空间          : 11.10 GiB / 68.79 GiB  
启动盘路径        : /dev/vda1  
系统在线时间      : 6 days, 17 hour 52 min  
负载              : 0.27, 0.42, 0.51  
系统              : Debian GNU/Linux 12 (bookworm) (x86_64)  
架构              : x86_64 (64 Bit)  
内核              : 6.1.0-26-amd64  
TCP加速方式       : cubic  
虚拟化架构        : KVM  
NAT类型           : Port Restricted Cone  
IPV4 ASN          : AS45090 Shenzhen Tencent Computer Systems Company Limited  
IPV4 位置         : Guangzhou / Guangdong / CN  
----------------------CPU测试--通过sysbench测试-------------------------  
-> CPU 测试中 (Fast Mode, 1-Pass @ 5sec)  
1 线程测试(单核)得分:          898 Scores  
2 线程测试(多核)得分:          1344 Scores  
---------------------内存测试--感谢lemonbench开源-----------------------  
-> 内存测试 Test (Fast Mode, 1-Pass @ 5sec)  
单线程读测试:          18844.55 MB/s  
单线程写测试:          14942.21 MB/s  
------------------磁盘dd读写测试--感谢lemonbench开源--------------------  
-> 磁盘IO测试中 (4K Block/1M Block, Direct Mode)  
测试操作               写速度                                  读速度-  
100MB-4K Block         5.5 MB/s (1338 IOPS, 19.13s)            18.4 MB/s (4494 IOPS, 5.70s)  
1GB-1M Block           109 MB/s (104 IOPS, 9.59s)              288 MB/s (274 IOPS, 3.64s)  
---------------------磁盘fio读写测试--感谢yabs开源----------------------  
Block Size | 4k            (IOPS) | 64k           (IOPS)  
 ------   | ---            ----  | ----           ----    
Read       | 78.96 MB/s   (19.7k) | 280.15 MB/s   (4.3k)  
Write      | 79.17 MB/s   (19.7k) | 281.63 MB/s   (4.4k)  
Total      | 158.13 MB/s  (39.5k) | 561.78 MB/s   (8.7k)  
          |                      |                        
Block Size | 512k          (IOPS) | 1m            (IOPS)  
 ------   | ---            ----  | ----           ----    
Read       | 266.72 MB/s    (520) | 265.44 MB/s    (259)  
Write      | 280.90 MB/s    (548) | 283.12 MB/s    (276)  
Total      | 547.63 MB/s   (1.0k) | 548.56 MB/s    (535)  
------------------------------------------------------------------------  
总共花费      : 7 分 6 秒-  
时间          : Wed Nov 20 11:37:09 CST 2024  
------------------------------------------------------------------------