zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Redis开发运维实践问题处理只内存检查

Redis内存运维开发 处理 实践 检查 问题
2023-09-11 14:15:59 时间
8.3.1 系统内存查看

script/下的memstat.sh或者ps_mem.py都可以查看系统的内存情况,两个工具都需要root权限。


8.3.2 系统swap内存查看
#!/bin/bash 

# Get current swap usage for all running processes

# Erik Ljungstrom 27/05/2011

# Modified by Mikko Rantalainen 2012-08-09

# Pipe the output to "sort -nk3" to get sorted output

# Modified by Marc Methot 2014-09-18

# removed the need for sudo

SUM=0

OVERALL=0

for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`

 PID=`echo $DIR | cut -d / -f 3`

 PROGNAME=`ps -p $PID -o comm --no-headers`

for SWAP in `grep VmSwap $DIR/status 2 /dev/null | awk { print $2 }`

 let SUM=$SUM+$SWAP

if (( $SUM 0 )); then

 echo "PID=$PID swapped $SUM KB ($PROGNAME)"

let OVERALL=$OVERALL+$SUM

SUM=0

echo "Overall swap used: $OVERALL KB"


8.3.3 info查看内存

used_memory:859192数据结构的空间 used_memory_rss:7634944实占空间 mem_fragmentation_ratio:8.89前2者的比例,1.N为佳,如果此值过大,说明redis的内存的碎片化严重,可以导出再导入一次.


8.3.4 dump.rdb文件成生内存报告(rdb-tool)
# rdb -c memory ./dump.rdb redis_memory_report.csv

# sort -t, -k4nr redis_memory_report.csv

8.3.5 query在线分析


8.3.6 内存抽样分析



8.3.7 统计生产上比较大的key



对redis中的key进行采样,寻找较大的keys。是用的是scan方式,不用担心会阻塞redis很长时间不能处理其他的请求。执行的结果可以用于分析redis的内存的只用状态,每种类型key的平均大小。


8.3.8 查看key内部结构和编码等信息


查看一个key内部信息,比如refcount、encoding、serializedlength等,结果如下 Value at:0x7f21b9479850 refcount:1 encoding:raw serializedlength:6 lru:8462202 lru_seconds_idle:215

8.3.9 Rss增加,内存碎片增加

此时可以选择时间进行redis服务器的重新启动,并且注意在rss突然降低观察是否swap被使用,以确定并非是因为swap而导致的rss降低。

一个典型的例子是:http://grokbase.com/t/gg/redis-db/14ag5n9qhv/redis-memory-fragmentation-ratio-reached-5000


Redis开发运维实践指南 本文为《Redis开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。




sql server 运维时CPU,内存,操作系统等信息查询(用sql语句) 原文:sql server 运维时CPU,内存,操作系统等信息查询(用sql语句) 我们只要用到数据库,一般会遇到数据库运维方面的事情,需要我们寻找原因,有很多是关乎处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统的,这时我们就需要查询他们的一些设置和内容,下面讲的就是如何查询它们的相关信息。