12个版本 (7个重大更新)
新 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.7.0 | 2023年11月29日 |
#125 in 缓存
每月247次 下载
在 2 个 存储库中使用
255KB
6K SLoC
mtop
mtop: 为Memcached的top
命令。
功能
- 显示关于您的
memcached
服务器的实时统计信息,例如- 内存使用/限制
- 每个slab的内存使用
- 当前/最大连接数
- 命中率
- 获取/设置/驱逐
- 发送和接收的字节数
- 服务器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
新版本的步骤。
- 在所有
Cargo.toml
文件中递增mtop
的版本并更新CHANGELOG.md
,然后打开并合并一个 PR。 - 从 Github 远程更新本地
master
。确保使用更新后的版本构建一次,以更新Cargo.lock
。 - 创建一个格式为
v1.2.3
的标签,但不要推送。 - 为
mtop-client
crate 运行cargo package
和cargo publish
。 - 为
mtop
crate 运行cargo package
和cargo publish
。 - 将标签推送到所有远程
git push --tags origin
,git push --tags github
依赖项
~11–20MB
~344K SLoC