ES 机器宕机,最后查到是 dentry 缓存太高
前段时间碰到一个很烦的事:同一个 ES 集群里,4 台物理机几乎同时挂了,3 台自动重启,1 台直接起不来,还得手动介入。 这事最开始看起来很像“机器突然抽风”,但我后面拿到两份 vmcore 去看,发现主线其实很清楚:不是 ES 进程自己崩了,也不是普通的内存不够,而是 dentry 缓存堆得太离谱,回收时又卡太久,最后把内核直接拖进了 panic。 ...
前段时间碰到一个很烦的事:同一个 ES 集群里,4 台物理机几乎同时挂了,3 台自动重启,1 台直接起不来,还得手动介入。 这事最开始看起来很像“机器突然抽风”,但我后面拿到两份 vmcore 去看,发现主线其实很清楚:不是 ES 进程自己崩了,也不是普通的内存不够,而是 dentry 缓存堆得太离谱,回收时又卡太久,最后把内核直接拖进了 panic。 ...
Minikube is a tool that allows you to run a Kubernetes cluster on your local machine. It is designed to make it easy to develop and test applications that will be deployed to a production Kubernetes environment. Minikube runs a single-node Kubernetes cluster inside a virtual machine on your local machine, which allows you to simulate a real-world Kubernetes environment without the need for additional hardware. ...
elasticsearch-dump、logstash、reindex、snapshot 方式进行数据迁移,实际上这几种工具大体上可以分为以下几类: scroll query + bulk:批量读取旧集群的数据然后再批量写入新集群,elasticsearch-dump、logstash、reindex 都是采用这种方式。 snapshot:直接把旧集群的底层的文件进行备份,在新的集群中恢复出来,相比较 scroll query + bulk 的方式,snapshot 的方式迁移速度最快。 从源 ES 集群通过备份 API 创建数据快照,然后在目标 ES 集群中进行恢复,无网络互通要求、迁移速度快、运维配置简单、适用于数据量大,接受离线数据迁移的场景。Snapshot and restore 模块允许创建单个索引或者整个集群的快照到远程仓库。所以首先需要创建一个存储快照的地方,存储方案可以选择一个 NFS 的共享存储,或者对象存储。 ...
最近工作中遇到的一个问题,网络组把网络设备的“陈年”老日志传到 ELK,这样的问题就是日志的时间是过去的,但是 Logstash 在生成时间戳然后输入到 ES 时,默认的是当前的时间戳。于是需求就是将日志中的时间代替它生成的时间戳,开搞! ...
我承认我可能是标题党了,因为每个人对“大”的理解肯定是不一样的,更何况我说的是超大。其实就是 10TB,对我一个没见过大世面的行业新人和 fdisk 来说,它确实算大的了,本文介绍对 parted 的学习和实际使用。 ...
今天同事请教我一个问题,说不想让别人看到脚本执行的内容,我一开始脸懵,后来才了解到,她是不想让用户看到脚本的内容(卸载软件的路径),以防软件的文件被人恶意破坏,导致不能正常运行等问题,于是便有了本文。 ...
MHA 是一种 MySQL 高可用解决方案,可用于 Position 或 GTID 模式下的主从复制架构,可以在主从故障时自动完成主从切换,并且最大程度地保持数据一致性。MHA 由管理节点(Manager)和数据节点(Node)组成,一套 MHA Manager 可以管理多套 MySQL 集群。当 Manager 发现 MySQL Master 出现故障时,自动将一个拥有最新数据的 Slave 提升为 Master,并让另外的 Slave 重新指向到新的 Master 上来。 ...
OpenResty 是一个基于 Nginx 的 Web 平台,可以使用其 LuaJIT 引擎执行 Lua 指令码。由章亦春建立。2011 年之前,它最初由 淘宝网 赞助,2012 年至 2016 年主要由 Cloudflare 支援。自 2017 年起,主要得到 OpenResty 软体基金会和 OpenResty 公司的支援。OpenResty 旨在构建可延伸的 Web 应用、Web 服务和动态 Web 闸道器。OpenResty 的架构是基于几个 nginx 模组,这些模组已经被扩充,以便将 nginx 扩充为一个 web 应用服务器,处理大量的请求。 ...
getopt 与 getopts 都是 Bash 中用来获取与分析命令行参数的工具,常用在 Shell 脚本中被用来分析脚本参数。 getopts 是 Shell 内建命令,getopt 是一个独立外部工具 getopts 使用语法简单,getopt 使用语法较复杂 getopts 不支持长参数(如:--option),getopt 支持长参数 getopts 出现的目的是为了在不太复杂的场景代替 getopt 较快捷地执行参数分析工作 getopts 负责参数解析,可以方便地提取参数值,getopt 只负责按规则重新对参数进行排列,进一步解析需要自行编写代码处理 ...
LVM 是 Logical Volume Manager(逻辑卷管理器)的简写,它是 Linux 环境下对磁盘分区进行管理的一种机制。LVM 将一个或多个磁盘分区(PV)虚拟为一个卷组(VG),相当于一个大的硬盘,我们可以在上面划分一些逻辑卷(LV)。当卷组的空间不够使用时,可以将新的磁盘分区加入进来。我们还可以从卷组剩余空间上划分一些空间给空间不够用的逻辑卷使用。 ...