前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >redis超时原因系统性排查

redis超时原因系统性排查

作者头像
BGBiao
发布于 2018-02-26 03:52:50
发布于 2018-02-26 03:52:50
8.2K10
代码可运行
举报
文章被收录于专栏:容器云生态容器云生态
运行总次数:0
代码可运行

1.计算延迟时间: 使用–latency参数  以下参数表示平均超时时间0.03ms。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
redis-cli --latency -h 127.0.0.1 -p 6800
min: 0, max: 4, avg: 0.03 (12235 samples)

注意:由于使用的是本机的回环地址,所以这样其实忽略了带宽上的延迟 使用redis内部的延迟检测子系统测试:见上一篇文章中“启用延迟监控系统“部分。

2.延迟标准: 使用–intrinsic-latency参数  需要运行在redis server本身,用来检测redis本身是否有延迟,在这种模式下,redis-cli不会连接redis server,它将衡量运行redis-cli进程本身最大的延迟时间。即redis的内部延迟

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./redis-cli --intrinsic-latency 100
Max latency so far: 4 microseconds.
Max latency so far: 7 microseconds.
Max latency so far: 13 microseconds.
Max latency so far: 28 microseconds.
Max latency so far: 30 microseconds.
Max latency so far: 39 microseconds.

32863264 total runs (avg 3 microseconds per run).
Worst run took 13.00x times the avarege.

注意:后面的参数100表示100s 由测试结果可以看出来,redis内部延迟仅为39微秒(0.039毫秒),这会是一个比较好的消息,因为内部延迟不超过100微秒性能都是相当好的(生产环境中,数据量比较大的时候内部延迟超过100也是很正常的,不会对用户的读写性能造成影响)不过需要注意的是,内部延迟严重依赖于cpu的load,如果你的系统有其他应用在共享cpu,那么对不起,你的内部延迟一定很大。

不信?你可以尝试在一台耗cpu的机器上跑redis并进行测试。

3.由网络和通信造成的延迟: 当用户连接到Redis通过TCP/IP连接或Unix域连接,千兆网络(1Gbit/s)的典型延迟大概200us,而Unix域socket可能低到30us。这完全基于你的网络和系统硬件。在通信本身之上,系统增加了更多的延迟(线程调度,CPU缓存,NUMA替换等等)。系统引起的延迟在虚拟机环境远远高于在物理机器环境。

1.实际情况是即使Redis处理大多数命令在微秒之下,客户机和服务器之间的交互也必然消耗系统相关的延迟。  2.一个高效的客户机因而试图通过捆绑多个命令在一起的方式减少交互的次数。服务器和大多数客户机支持这种方式。聚合命令象MSET/MGET也可以用作这个目的。

在这里会有几个比较好的建议:

*如果你负担的起,尽可能的使用物理机而不是虚拟机来做服务器 *不要经常的connect/disconnect与服务器的连接(尤其是对基于web的应用),尽可能的延长与服务器连接的时间。 *如果你的客户端和服务器在同一台主机上,则使用Unix域套接字 *尽量使用聚合命令(MSET/MGET)或可变参数命令而不是pipelining *如果可以尽量使用pipelining而不是序列的往返命令。 *针对不适合使用原始pipelining的情况,如某个命令的结果是后续命令的输入,在以后的版本中redis提供了对服务器端的lua脚本的支持,实验分支版本现在已经可以使用了。

注意:在Linux上,你可以通过process placement(taskset)、cgroups、real-time priorities(chrt)、NUMA配置(numactl)或使用低延迟内核的方式来获取较低的延迟。请注意Redis 并不适合被绑到单个CPU核上。redis会在后台创建一些非常消耗CPU的进程,如bgsave和AOF重写,这些任务是绝对不能和主事件循环进程放在一个CPU核上的。然而,大多数情况下上述的优化方法是不需要的,除非你确实需要并且你对优化方法很熟悉的情况下再使用上述方法。

4.redis的单线程天性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    redis使用单线程设计的,这就意味着单个进程需要使用一种多路复用的技术来服务所有的客户端请求。意思就是在某一时刻,redis可以服务于一个请求,然后其他的请求会被频繁的处理。这个和node.js工作模式很相似,然而,redis和node的处理机制都不会让人感知到很慢。
    这是因为,短时间内redis就会完成单个请求,但是最重要的是这些产品被设计成系统调用时不能阻塞,比如一些在socket中读数据或者写数据操作。

5.慢命令造成的延迟: 单线程的一个结果是,当一个请求执行得很慢,其他的客户端调用就必须等待这个请求执行完毕。当执行GET、SET或者 LPUSH 命令的时候这不是个问题,因为这些操作可在很短的常数时间内完成。然而,对于多个元素的操作,像SORT, LREM, SUNION 这些,做两个大数据集的交叉要花掉很长的时间。

官方文档(http://redis.io/commands)提到了所有操作的算法复杂性。 在使用一个你不熟悉的命令之前系统的检查它会是一个好办法。  如果你对延迟有要求,那么就不要执行涉及多个元素的慢操作,你可以使用Redis的replication功能,把这类慢操作全都放到replica上执行。  此外,你可以用你喜欢的进程监控程序(top, htop, prstat, 等…)来快速查看Redis进程的CPU使用率。如果traffic不高而CPU占用很高,八成说明有慢操作。

重要提示:  一般来说,一个普遍的延迟原因都是使用了慢命令查询,比如使用keys等命令(生产环境慎用),自从redis2.8之后,系统自带一些命令可以进行key的迭代,比如scan,sscan,hscan和zscan等

6.由fork产生的延迟: Redis不论是为了在后台生成一个RDB文件,还是为了当AOF持久化方案被开启时重写Append Only文件,都会在后台fork出一个进程这是redis唯一一个生成的子进程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    fork操作(在主线程中被执行)本身会引发延迟。在大多数的类unix操作系统中,fork是一个很消耗的操作,因为它牵涉到复制很多与进程相关的对象。而这对于分页表与虚拟内存机制关联的系统尤为明显。对于运行在一个linux/AMD64系统上的实例来说,内存会按照每页4KB的大小分页。为了实现虚拟地址到物理地址的转换,每一个进程将会存储一个分页表(树状形式表现),分页表将至少包含一个指向该进程地址空间的指针。所以一个空间大小为24GB的redis实例,需要的分页表大小为 24GB/4KB*8 = 48MB。
    当一个后台的save命令执行时,实例会启动新的线程去申请和拷贝48MB的内存空间。这将消耗一些时间和CPU资源,尤其是在虚拟机上申请和初始化大块内存空间时,消耗更加明显

在不同系统中的Fork时间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
下面的列表比较了不同Redis实例的fork时间。数据包含正在执行的BGSAVE,并通过INFO指令查看thelatest_fork_usecfiled。
Linux beefy VM on VMware 6.0GB RSS forked 77 微秒 (GB 12.8 微秒 ).
Linux running on physical machine (Unknown HW) 6.1GB RSS forked 80 微秒(GB 13.1微秒)
Linux running on physical machine (Xeon @ 2.27Ghz) 6.9GB RSS forked into 62 微秒 (GB 9 微秒).
Linux VM on 6sync (KVM) 360 MB RSS forked in 8.2 微秒 (GB 23.3 微秒).
Linux VM on EC2 (Xen) 6.1GB RSS forked in 1460 微秒 (GB 239.3 微秒).
Linux VM on Linode (Xen) 0.9GBRSS forked into 382 微秒 (GB 424 微秒).

7.透明大页(transport huge pages)引起的延迟:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
透明大页,默认是always,启用是为了可以管理更多的内存地址空间。可以使用never关闭,之后会使用系统软件的算法管理内存映射。

通常linux会将透明大页开启,在fork被调用后,redis产生的延迟被用来持久化到磁盘。内存大页会引起一下问题:  1.fork被调用,共享内存大页的两个进程被创建  2.在一个系统比较活跃的实例里,部分循环时间运行需要几千个内存页,期间引起的copy-on-write 会消耗几乎所有的内存  3.这个将导致更大的延迟和使用更多的内存  因此,redis官方建议需要确保禁掉内存大页:  echo never > /sys/kernel/mm/transparent_hugepage/enabled

8.swapping (操作系统分页)引起的延迟:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Linux (以及其他一些操作系统) 可以把内存页存储在硬盘上,反之也能将存储在硬盘上的内存页再加载进内存,这种机制使得内存能够得到更有效的利用。

如果内存页被系统移到了swap文件里,而这个内存页中的数据恰好又被redis用到了(例如要访问某个存储在内存页中的key),系统就会暂停redis进程直到把需要的页数据重新加载进内存。这个操作因为牵涉到随机I/O,所以很慢,会导致无法预料的延迟。

系统之所以要在内存和硬盘之间置换redis页数据主要因为以下三个原因:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    系统总是要应对内存不足的压力,因为每个运行的进程都想申请更多的物理内存,而这些申请的内存的数量往往超过了实际拥有的内存。简单来说就是redis使用的内存总是比可用的内存数量更多。
    redis实例的数据,或者部分数据可能就不会被客户端访问,所以系统可以把这部分闲置的数据置换到硬盘上。需要把所有数据都保存在内存中的情况是非常罕见的。
    一些进程会产生大量的读写I/O。因为文件通常都有缓存,这往往会导致文件缓存不断增加,然后产生交换(swap)。请注意,redis RDBAOF后台线程都会产生大量文件。

所幸Linux提供了很好的工具来诊断这个问题,所以当延迟疑似是swap引起的,最简单的办法就是使用Linux提供的工具去确诊。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
首先查到redis进城的pid
cd /proc/5454
在这里你会发现一个名为smaps 的文件,它描述了redis进程的内存布局 (假定你使用的是Linux 2.6.16或者更新的版本)。这个文件包括了很多进程所使用内存的细节信息,其中有一项叫做Swap的正是我们所关心的。不过仅看这一项是不够的,因为smaps文件包括有redis进程的多个不同的的内存映射区域的使用情况(进程的内存布局远不是线性排列那么简单)。

从我们对所有进程的内存交换情况感兴趣以来,我们首先要做的事情是使用grep命令显示进程的smaps文件
$ cat smaps | grep 'Swap:'
Swap: 0 kB
Swap: 0 kB
Swap: 0 kB
Swap: 0 kB
Swap: 0 kB
Swap: 12 kB
Swap: 4 kB
Swap: 0 kB
Swap: 0 kB
Swap: 4 kB
Swap: 4 kB
假如所有的数据显示为0kb或者某些数据偶尔显示为4kb,表示当前一切正常。实际上我们的例子是一个真实的运行着Redis并每秒为数百的用户提供服务的网站,会显示更多的交换页。为了研究是否存在一个严重的问题,我们改变命令打印出分配的内存尺寸

$ cat smaps | egrep '^(Swap|Size)'
Size: 316 kB
Swap: 0 kB
Size: 4 kB
Swap: 0 kB
Size: 8 kB
Swap: 0 kB
Size: 40 kB
Swap: 0 kB
Size: 132 kB
Swap: 0 kB
Size: 720896 kB
Swap: 12 kB
Size: 4096 kB
Swap: 156 kB

在输出信息中,你能看到有一个720896kb的内存分配(有12kb的交换)还有一个156kb的交换是另一个进程的。基本上我们的内存只会有很小的内存交换,因此不会产生任何的问题

假如进程的内存有相当部分花在了swap上,那么你的延迟可能就与swap有关。假如redis出现这种情况那么可以用 vmstat 命令来验证一下猜测:
$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 3980 697932 147180 1406456 0 0 2 2 2 0 4 4 91 0
0 0 3980 697428 147180 1406580 0 0 0 0 19088 16104 9 6 84 0
0 0 3980 697296 147180 1406616 0 0 0 28 18936 16193 7 6 87 0
0 0 3980 697048 147180 1406640 0 0 0 0 18613 15987 6 6 88 0
2 0 3980 696924 147180 1406656 0 0 0 0 18744 16299 6 5 88 0
0 0 3980 697048 147180 1406688 0 0 0 4 18520 15974 6 6 88 0

输出中我们最感兴趣的两行是si 和 so,这两行分别统计了从swap文件恢复到内存的数量和swap到文件的内存数量。如果在这两行发现了非0值那么就说明系统正在进行swap。

最后,可以用iostat命令来查看系统的全局I/O行为。
$ iostat -xk 1
avg-cpu: %user %nice %system %iowait %steal %idle
13.55 0.04 2.92 0.53 0.00 82.95

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.77 0.00 0.01 0.00 0.40 0.00 73.65 0.00 3.62 2.58 0.00
sdb 1.27 4.75 0.82 3.54 38.00 32.32 32.19 0.11 24.80 4.24 1.85
如果确认延迟是由于swap引起的,那么就需要减小系统的内存压力,要么给机器增加内存,要么不要在同一个机器上运行其他消耗内存的程序。

9.AOF和磁盘I/O造成的延迟:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    另一个延迟的根源是Redis的AOF(仅附加文件)模式。AOF基本上是通过两个系统间的调用来完成工作的。 一个是写,用来写数据到AOF, 另外一个是文件数据同步,通过清除硬盘上空核心文件的缓冲来保证用户指定的持久级别。

包括写和文件数据同步的调用都可以导致延迟的根源。 写实例可以阻塞系统范围的同步操作,也可以阻塞当输出的缓冲区满并且内核需要清空到硬盘来接受新的写入的操作。  文件数据同步对于延迟的影响非常大,因为它涉及到好几步调用,可能要花掉几毫秒以致几秒的时间,特别是在还有其他进程后也在占用I/O的情况下。

我们来看看当使用AOF的时候如何配置来降低延迟: 通过设置AOF相关的appendfsync项,可以使用三种不同的方式来执行文件同步(也可以在运行时使用config set 命令来修改这个配置)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     **appendfsync 的值设置为no,redis不执行fsync。这种情况下造成延迟的唯一原因就是写操作。这种延迟没有办法可以解决,因为redis接收到数据的速度是不可控的,不过这种情况也不常见,除非有其他的进程占用I/O使得硬盘速度突然下降。
     **appendfsync 的值设置为everysec,每秒都会执行fsync。fsync 由一个单独线程执行,如果需要写操作的时候有fsync正在执行redis就会用一个buffer来延迟写入2秒(因为在Linux如果一个fsync 正在运行那么对该文件的写操作就会被堵塞)。如果fsync 耗时过长(译者注:超过了2秒),即使fsync 还在进行redis也会执行写操作,这就会造成延迟。
     **appendfsync 的值设置为always ,fsync 会在每次写操作返回成功代码之前执行(事实上redis会积累多个命令在一次fsync 过程中执行)。这种模式下的性能表现是非常差劲的,所以最好使用一个快速的磁盘和文件系统以加快fsync 的执行。

大多数redis用户都会把这个值设成 no 或者 everysec。要减少延迟,最好避免在同一个机器上有其他耗费I/O的程序。 经验中发现其实可以把主的持久化设置rdb,从设置成aof,或者aof直接关闭。因为aof会将所以的写操作进行记录。当然用SSD也有益于降低延迟,不过即使不使用SSD,如果能有冗余的硬盘专用于AOF也会减少寻址时间,从而降低延迟。 如果你想诊断AOF相关的延迟原因可以使用strace 命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
strace -p $(pidof redis-server) -T -e trace=fdatasync,write

上面的命令会展示redis主线程里所有的fdatasync系统调用。不包括后台线程执行的fdatasync 调用。不过因为write也会向客户端写数据,所以用上面的命令很可能会获得许多与磁盘I/O没有关系的结果。似乎没有办法让strace 只显示慢系统调用,所以要用下面的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
strace -f -p $(pidof redis-server) -T -e trace=fdatasync,write 2>&1 | grep -v '0.0' | grep -v unfinished

10.数据过期造成的延迟:

redis有两种方式来驱逐过期的key: lazy方式,在key被请求的时候才检查是否过期。 active方式,每0.1秒进行一次过期检查。

active过期模式是自适应的,每过100毫秒开始一次过期检查(每秒10次),每次作如下操作:

  • **根据 REDIS_EXPIRELOOKUPS_PER_CRON 的值删除已经过期的key(是指如果过期的key数量超过了REDIS_EXPIRELOOKUPS_PER_CRON 的值才会启动过期操作,太少就不必了。这个值默认为10)
  • **假如超过25%(是指REDIS_EXPIRELOOKUPS_PER_CRON这个值的25%)的key已经过期,则重复一遍检查失效的过程。
从上面的驱逐策略上看,通常在actively模式下1秒能处理100个key。在过期的key有一段时间没被访问的情况下这个清理速度已经足够了,所以 lazy模式基本上没什么用。1秒只过期100个key也不会对redis造成多大的影响。

11.常用的检查命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.查看前num条慢命令,这个所谓的慢是可以通过参数slowlog-log-slower-than设定的,默认10000us,也就是10ms
>slowlog get num 
2.查看当前实例中哪些key比较占空间(redis-cli的参数)
#redis-cli --bigkeys
3.查看redis相关的监控信息
>info 相关命令(memory cpu replication stats clients)
注意:客户端连接数默认限制为10000,生产测试发现超过5000就会影响;total_commands_processed、instantaneous_ops_per_sec、net_io_in_per_sec、net_io_out_per_sec、total_commands、connected_clients、used_memory_human、used_memory_peak_human这些指标都需要关注下;
4.测试qps
>redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -d 2
50个并发链接,10000个请求,每个请求2kb。
写在最后:

维护生产环境中,更多需要排查的其实就是超时问题,由于造成超时原因比较多,因此会给运维同事造成很多困扰,但现实情况往往不是那样子的,因为作为一个基础服务,在上线之前就需要对一些基本环境进行优化,比如说系统层面cpu以及内存的调优,而且生产环境一般也不会用虚机去跑比较重要而且吞吐比较高的redis吧,除非是真穷了,这样说来超时的原因其实就很小了。反正在我的维护过程中,大多数情况是用户使用一些非业务操作命令,什么意思呢,就是keys啦之类的导致redis堵塞,还有一种情况就是用户对redis的命令使用不是特别熟悉,因为原始命令里支持很多聚合命令,比如mset,mget,mhget等等,还有管道的一些使用。另外还遇到过一次超时基本上时因为客户端连接数过高,当时已经到8k+,临时采取措施后,客户端连接数降下来其实就没有什么事了。 那么问题来了,为什么会这样呢?运维和用户之间的沟通太少,彼此之间你不懂我我不懂你,所以造成的redis本身的误用、滥用。等真正出现问题的时候各自都有理,运维说:你丫生产不要用keys好吧,单线程的东西,遍历一遍key业务还要不要访问数据啊;用户说:麻痹,我只管开发业务系统了,redis推荐的使用方法和规则你又没告诉我。 其实,都没有错,错在运维和用户之间那堵墙没有连接起来。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
怎么没有四和五章节
怎么没有四和五章节
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
企业监控调研指引:17个精心准备的开源运维监控系统
监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。之后,随着业务规模的持续快速增长,监控的对象也越来越多,越来越复杂,监控系统的使用对象也从最初少数的几个SRE,扩大为更多的DEVS,SRE。这时候,监控系统的容量和用户的“使用效率”成了最为突出的问题。 监控系统业
小小科
2018/05/04
4K0
企业监控调研指引:17个精心准备的开源运维监控系统
Linux开源监控平台归总
Cacti是一个性能广泛的图表和趋势分析工具,可以用来跟踪并几乎可以绘制出任何可监测指标,描绘出图表。从硬盘的利用率到风扇的转速,在一个电脑管理系统中,只要是可以被监测的指标,Cacti都可以监测,并快速的转换成可视化的图表。
房上的猫
2019/03/19
3.6K0
Linux开源监控平台归总
「译」5款最佳IT基础设施开源监控软件
监控对企业来说至关重要,以确保必要的系统正常运行。监控IT基础架构设置的不同,可能会导致大量的发故障和问题,如果不正确的使用监控工具难于保证系统健康运行。
后场技术
2020/09/03
2.1K0
「译」5款最佳IT基础设施开源监控软件
Github上排名前五的开源网络监控工具
链接:https://opensource.com/article/19/2/network-monitoring-tools
程序员小猿
2021/07/30
1.2K0
适用于 DevOps 和 SRE 的顶级监控工具
监控已经从简单的最佳实践转变为任何产品发布清单上的必需品。选择满足可观察性需求并确保您为客户提供服务的可靠性的工具至关重要。
用户5166556
2023/03/18
9120
适用于 DevOps 和 SRE 的顶级监控工具
8大轻型网管工具,网络管理好帮手「建议收藏」
  从设备发现到系统、网络和流量可视性,这些轻型的网管工具非常实用。在网络和服务器世界,重点是可视性、可视性、可视性,如果你不知道你的网络和服务器在每天每秒正在做什么,你很可能会出问题。幸运的是,这里有很多好工具(商业和开源工具)来帮助你满足需求。
全栈程序员站长
2022/11/08
3.9K0
8大轻型网管工具,网络管理好帮手「建议收藏」
16 个有用的带宽监控工具来分析 Linux 中的网络使用情况
◆ 概述 为什么今天的网络这么慢?您是否在监控 Linux 网络带宽使用情况时遇到问题?如果你想可视化网络中正在发生的事情,以便了解和解决导致网络缓慢的任何原因,今天的工具可以帮助到你。下面列出的工具都是开源的,包括用于监视单个 Linux 机器上的带宽的小工具和完整的监视解决方案。 ◆ 1. vnStat – 网络流量监视器 VnStat是一个功能齐全的基于命令行的程序,用于在 Linux 和 BSD 系统上实时监控 Linux 网络流量和带宽利用率。 与其他工具相比,它的一个优势是它记录网络流量和带宽
IT大咖说
2022/04/22
11.5K1
16 个有用的带宽监控工具来分析 Linux 中的网络使用情况
这 30 个工具和服务可以更好地监控和管理 Linux 服务器,很全面!
Linux 服务器的监控是确保其运行正常和高效的关键。在这篇文章中,我们将介绍 30 个有趣的工具和服务,帮助您更好地监控和管理您的 Linux 服务器。这些工具和服务涵盖了各种不同的方面,包括系统性能监控、日志分析、网络流量分析和安全性等。下面就让我们来一一了解它们吧!
网络技术联盟站
2023/05/03
8.2K0
这 30 个工具和服务可以更好地监控和管理 Linux 服务器,很全面!
15个最好的免费开源监控系统
通过跟踪监控服务器的性能、网络流量、应用程序性能以及用户体验情况,可帮助我们更好地了解整个IT环境运行状态,为系统运维、调优提供支撑。掌握一些好的监控工具可以为我们更好地跟踪服务器状态,持续优化系统提供最佳解决方案。
科控物联
2023/09/29
19.3K0
15个最好的免费开源监控系统
这 5 种常用运维监控工具都不会?你算啥运维人
运维监控工具千千万,仅开源的解决方案就有流量监控(MRTG、Cacti、SmokePing、Graphite 等)和性能告警(Nagios、Zabbix、Zenoss Core、Ganglia、OpenTSDB等)可供选择。
互联网老辛
2021/04/22
2.8K0
这 5 种常用运维监控工具都不会?你算啥运维人
Linux 运维工程师必备的80个监控工具(第30-80个)
这是《Linux 运维工程师必备的80个监控工具》的下篇,上篇请点击:Linux运维工程师必备的80个监控工具全集(上) 与系统有关的监控 30 nmom[26] nmon 将数据输出到屏幕上的,或
小小科
2018/05/03
2.7K0
Linux 运维工程师必备的80个监控工具(第30-80个)
一篇文章带你了解当下主流的监控工具
以往,在缺少告警机制的情况下,企业无法第一时间洞悉到系统发生故障,只能通过用户的反馈来获取,系统运维人员往往也只是充当了一个“救火” 队员,大面积的系统瘫痪往往也会给企业和用户带来极大的损失
lyb-geek
2019/11/22
1.8K0
作为背了不少锅的运维人,看到这几款监控工具,差点拍断大腿了!
运维监控工具千千万,仅开源的解决方案就有流量监控(MRTG、Cacti、SmokePing、Graphite等)和性能告警(Nagios、Zabbix、Zenoss Core、Ganglia、OpenTSDB等)可供选择。
网络工程师笔记
2023/10/24
1.2K0
作为背了不少锅的运维人,看到这几款监控工具,差点拍断大腿了!
10个免费的服务器监控工具
监控你的WEB服务器或者WEB主机运行是否正常与健康是非常重要的。你要确保用户始终可以打开你的网站并且网速不慢。服务器监控工具允许你收集和分析有关你的Web服务器的数据。 有许多非常好的服务器监控解决方案,而为了省去你寻找方案的麻烦,这里我为你列出了我能找到的最好的服务器监控工具。 1. Performance Co-Pilot Performance Co-Pilot,简称 PCP,是一个系统性能和分析框架。它从多个主机整理数据并实时的分析,帮你识别不正常的表现模式。它也提供 API 让你设计自己的监控和
小小科
2018/05/02
22.4K0
10个免费的服务器监控工具
每个系统管理员都要知道的 30 个 Linux 系统监控工具
您需要监控 Linux 服务器的性能吗?试试用这些内置命令和附加工具吧!大多数 Linux 发行版都附带了大量的监控工具。这些工具提供了获取系统活动的相关指标。您可以使用这些工具来查找性能问题的可能原
前端教程
2018/03/29
1.9K0
每个系统管理员都要知道的 30 个 Linux 系统监控工具
优秀的系统监控工具
下面介绍3个开源的主流监控工具 Nagios https://www.nagios.org/ Nagios 用于对服务器、网络、应用进行监控和告警,非常成熟,几乎已经成为IT基础设施监控方面的标
dys
2018/04/04
1.3K0
优秀的系统监控工具
开源工具软件
https://bitnami.com/stack/redmine/installer
孤鸿
2022/10/04
2.6K0
你不得不了解的10款服务器监控工具
监控Web服务器或Web主机的运行状况和正常运行非常重要。如果希望确保您的网站可用性在您的控制之中,那你就需要收集服务器各种性能数据以供分析和调整。以下是收集的常用大多数服务器监控组件解决方案。
leon公众号精选
2022/04/27
1.1K0
你不得不了解的10款服务器监控工具
常见监控工具分析对比
所以说监控是运维这个职业的根本。尤其是在现在DevOps这么火的时候,用监控数据给自己撑腰,这显得更加必要。
IT运维技术圈
2023/02/02
1.1K0
你必须了解的10款服务器监控工具有哪些_nmon监控工具使用方法
监控Web服务器或Web主机的运行状况和正常运行非常重要。如果希望确保您的网站可用性在您的控制之中,那你就需要收集服务器各种性能数据以供分析和调整。以下是收集的常用大多数服务器监控组件解决方案。
全栈程序员站长
2022/09/20
8080
推荐阅读
相关推荐
企业监控调研指引:17个精心准备的开源运维监控系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文