如何监控Ubuntu Redis性能
监控Ubuntu环境下Redis的性能需结合自带工具(快速定位基础指标)、第三方工具(可视化与长期追踪)及慢查询分析(定位性能瓶颈),以下是具体方法:
redis-cli info命令:获取全面服务器指标info是Redis最核心的监控命令,可查看内存、CPU、连接、持久化等所有关键指标。常用子命令包括:
info memory:查看内存使用情况(如used_memory已用内存、maxmemory最大内存、mem_fragmentation_ratio内存碎片率);info clients:查看客户端连接数(connected_clients当前连接数、client_longest_output_list最大输出缓冲区);info stats:查看整体统计信息(instantaneous_ops_per_sec每秒操作数、total_commands_processed总命令数);info persistence:查看持久化状态(rdb_last_save_time上次RDB保存时间、aof_last_bgrewrite_statusAOF重写状态)。redis-cli info即可获取所有指标,适合快速排查基础问题。redis-cli monitor命令:实时查看命令执行monitor可实时显示所有客户端的命令请求(包括命令内容、执行时间、客户端IP),适合调试实时性能问题或跟踪慢命令。但需注意,该命令会占用较多资源,建议仅在排查问题时短期使用。
top/htop命令:监控系统资源占用通过top(基础版)或htop(增强版,需sudo apt install htop安装)查看Redis进程的CPU使用率、内存占用及线程数。可通过top -p $(pgrep redis-server)直接过滤Redis进程,快速识别资源瓶颈。
redis-cli slowlog命令:分析慢查询慢查询是Redis性能下降的常见原因,通过以下命令配置和查看慢查询日志:
config set slowlog-log-slower-than 10000;config set slowlog-max-len 100;redis-cli slowlog get(输出包括命令执行时间、命令内容、客户端信息)。Redis-stat是基于info命令的轻量级工具,支持命令行实时显示和WEB界面,适合快速部署。
gem install redis-stat(需提前安装Ruby);redis-stat localhost:6379 1 10(每1秒刷新一次,共显示10次);redis-stat --server=8080 5(启动WEB服务,端口8080,每5秒刷新一次),通过浏览器访问http://localhost:8080查看实时图表。Prometheus(时间序列数据库)+ Grafana(可视化工具)是企业级监控方案,适合大规模Redis集群。
wget https://github.com/oliver006/redis_exporter/releases/download/v1.18.0/redis_exporter-v1.18.0.linux-amd64.tar.gz
tar xvf redis_exporter-v1.18.0.linux-amd64.tar.gz
cd redis_exporter-v1.18.0.linux-amd64
./redis_exporter -redis.addr=redis://localhost:6379
/etc/prometheus/prometheus.yml):scrape_configs:
- job_name: 'redis'
static_configs:
- targets: ['localhost:9121'] # Redis Exporter默认端口
./prometheus --config.file=prometheus.yml;http://localhost:3000),添加Prometheus数据源,导入Redis监控面板(如官方面板ID:7638)。RedisInsight是Redis官方推出的免费图形化工具,支持性能监控、内存分析、慢查询管理等功能。
.deb包),双击安装;localhost:6379),即可查看内存使用趋势、命令性能分析、慢查询列表等可视化界面,适合新手快速上手。慢查询是Redis性能瓶颈的主要来源,需通过以下步骤定位和解决:
config set命令设置slowlog-log-slower-than(阈值)和slowlog-max-len(日志长度);redis-cli slowlog get获取慢查询记录;SCAN命令替代KEYS(避免阻塞)、拆分大键(如将大Hash拆分为多个小Hash)、避免复杂脚本(如Lua脚本过长)。通过以上方法,可全面覆盖Ubuntu环境下Redis的性能监控需求,从基础指标到深层瓶颈均能快速定位和解决。