24 个版本 (12 个重大变更)
新增 0.13.0 | 2024 年 8 月 24 日 |
---|---|
0.12.1 | 2024 年 7 月 24 日 |
0.11.0 | 2024 年 6 月 24 日 |
0.9.0 | 2024 年 2 月 13 日 |
0.4.1 | 2023 年 3 月 22 日 |
#45 in 缓存
每月 245 次下载
380KB
9K SLoC
mtop
mtop: top
for Memcached.
功能
- 显示您
memcached
服务器实时统计信息,例如- 内存使用/限制
- 每个页面的内存使用
- 当前/最大连接数
- 命中率
- 获取/设置/驱逐
- 传输和接收的字节数
- 服务器 CPU 使用率
- 支持轻松切换到多个服务器
安装
以下列出了安装 mtop
的多种方式。
二进制文件
为 GNU/Linux (x86_64)、Musl/Linux (x86_64)、Windows (x86_64) 和 MacOS (x86_64 和 aarch64) 发布了二进制文件,针对每个版本进行发布。每个可用的存档都包含该平台上的 mtop
和 mc
二进制文件以及一些文档文件。
Docker
针对 GNU/Linux (amd64, arm64) 的 Docker 镜像针对每个版本进行发布。这些 Docker 镜像是使用本存储库中的 Dockerfile 构建的。它们没有设置入口点,默认将运行 mtop --help
。 mtop
和 mc
二进制文件位于 PATH
中,在 /usr/local/bin
。
Cargo
mtop
以及其依赖项可以使用 Rust cargo
工具从源代码下载和构建。请注意,这需要您已安装 Rust 工具链。
安装
cargo install mtop
作为完全静态的二进制文件安装(仅限 Linux)
cargo install --target x86_64-unknown-linux-musl mtop
卸载
cargo uninstall mtop
源代码
mtop
以及其依赖项可以使用 Rust cargo
工具从 GitHub 上最新的源代码构建。请注意,这需要您已安装 Git 和 Rust 工具链。
获取源代码
git clone https://github.com/56quarters/mtop.git && cd mtop
从本地源安装
cargo install --path mtop
从本地源安装完全静态的二进制文件(仅限 Linux)
cargo install --path mtop --target x86_64-unknown-linux-musl
卸载
cargo uninstall mtop
用法
mtop
接受一个或多个 host:port
的 Memcached 组合作为参数。每个服务器的统计信息大约每秒收集一次。每个服务器最多保留十个测量值以供计算。
如果 mtop
在启动时无法连接到服务器,它将在打印错误信息后退出。如果 mtop
在启动后无法连接到服务器或从中获取统计信息,错误将被记录到文件中。在类 Unix 系统上,此文件的位于 /tmp/mtop/mtop.log
。每次 mtop
启动时,此日志文件都会被截断。
以下是一些调用 mtop
的示例。
连接到本地服务器
mtop localhost:11211
连接到多个服务器
mtop cache01.example.com:11211 cache02.example.com:11211 cache03.example.com:11211
使用单个 DNS 名称连接到多个服务器
A 或 AAAA
在此示例中,对 memcached.local
的 DNS A
查询返回三个 DNS A
记录。
dig -t A memcached.local
;; QUESTION SECTION:
;memcached.local. IN A
;; ANSWER SECTION:
memcached.local. 0 IN A 127.0.0.3
memcached.local. 0 IN A 127.0.0.2
memcached.local. 0 IN A 127.0.0.1
mtop
将连接到所有三个服务器:127.0.0.1
、127.0.0.2
和 127.0.0.3
。
mtop dns+memcached.local:11211
SRV
在此示例中,对 _memcached._tcp.example.com
的 DNS SRV
查询返回三个 DNS SRV
记录。
dig -t SRV _memcached._tcp.example.com
;; QUESTION SECTION:
;_memcached._tcp.example.com. IN SRV
;; ANSWER SECTION:
_memcached._tcp.example.com. 300 IN SRV 100 100 11211 memcached01.example.com.
_memcached._tcp.example.com. 300 IN SRV 100 100 11211 memcached02.example.com.
_memcached._tcp.example.com. 300 IN SRV 100 100 11211 memcached03.example.com.
mtop
将连接到所有三个服务器,在建立连接时将它们的名称解析为 A
或 AAAA
记录:memcached01.example.com.
、memcached02.example.com.
和 memcached03.example.com.
。请注意,忽略 SRV
记录中的端口号,只使用命令行参数中的端口号。
mtop dnssrv+_memcached._tcp.example.com:11211
连接到端口转发的 Kubernetes pod
kubectl port-forward --namespace=example memcached-0 11211:11211
mtop localhost:11211
服务器 TLS 连接
mtop --tls-enabled cache01.example.com:11211
使用自定义 CA 的 TLS
mtop --tls-enabled --tls-ca memcached-ca-cert.pem cache01.example.com:11211
使用客户端身份验证和自定义 CA 的 TLS
mtop --tls-enabled --tls-ca memcached-ca-cert.pem --tls-cert memcached-client-cert.pem --tls-key memcached-client-key.pem cache01.example.com:11211
用户界面
在 mtop
用户界面中,有一些键可以控制行为。
q
退出。m
在默认 UI 和每个 slab UI 之间切换。l
或右箭头
选择下一个主机。h
或左箭头
选择上一个主机。j
或下箭头
选择下一个 slab 行。k
或上箭头
选择上一个 slab 行。
限制
没有历史数据
mtop
显示瞬时统计信息或过去 10 秒的平均值(具体取决于特定的统计信息)。它不会将统计信息持久化以进行历史分析。如果您需要这样做,请使用 Prometheus 的 memcached_exporter。
许可协议
mtop 在以下协议下可用:GPL,版本3。
贡献
您有意提交以供包含在作品中的任何贡献,都应按上述方式许可,不得附加任何额外条款或条件。
发布
以下描述了发布 mtop
新版本的步骤。
- 打开并合并一个 PR,增加
mtop
在所有Cargo.toml
文件中的版本,并更新CHANGELOG.md
。 - 从 Github 远程更新本地
master
。确保使用更新后的版本构建一次,以更新Cargo.lock
。 - 创建一个标签,格式为
v1.2.3
,但不推送。 - 运行
cargo package
和cargo publish
命令来发布mtop-client
crate。 - 运行
cargo package
和cargo publish
命令来发布mtop
crate。 - 将标签推送到所有远程
git push --tags origin
,git push --tags github
依赖关系
~20–33MB
~582K SLoC