当前位置: 首页 > news >正文

【企业级分布式系统】ELK优化

文章目录

  • Elasticsearch作为日志存储时的优化
    • 优化ES索引设置
    • 优化线程池配置
    • 锁定内存,不让JVM使用Swap
    • 减少分片数、副本数

Elasticsearch作为日志存储时的优化

linux内核优化、JVM优化、ES配置优化、架构优化(filebeat/fluentd代替logstash、加入kafka做消息队列)

优化ES索引设置

(1)优化fsync

  • 背景:Elasticsearch为保证数据不丢失,会在每次写请求完成后触发fsync将translog中的segment刷到磁盘。这提高了数据安全性,但可能影响性能。
  • 优化建议:如果允许部分数据丢失以提高效率,可以设置异步刷新translog,并调整相关参数。
    • "index.translog.durability": "async":设置为异步刷新。
    • "index.translog.flush_threshold_size":"1024mb":增大translog刷新阈值。
    • "index.translog.sync_interval": "120s":延长translog同步间隔。

(2)优化refresh

  • 背景:Elasticsearch通过refresh过程将内存中的数据转换成Lucene的完整segment,以便被搜索。默认1秒后数据可查询,但会产生大量segment,影响检索性能。
  • 优化建议:对于日志搜索,可以适当增大refresh间隔。
    • "index.refresh_interval":"5s"或更长,根据实际需求设置。

(3)优化merge

  • 背景:merge操作会合并segment,优化索引结构。但并发merge可能占用过多资源,影响集群性能。
  • 优化建议:控制并发的merge线程数,根据存储类型和CPU核数调整。
    • "index.merge.scheduler.max_thread_count":"1":对于普通磁盘,设置为1以减少IO堵塞。

(4)实施优化

  • 需要先关闭索引,修改设置后再打开。
  • 使用curl命令进行索引的关闭、设置修改和打开操作。

优化线程池配置

  • 背景:write线程池满负荷时可能导致数据写入拒绝。
  • 优化建议
    • 将线程数改为CPU总核数加1。
    • 增大队列容量以缓冲任务,但避免过大导致堆内存占用过多。
  • elasticsearch.yml文件中修改write线程池配置。

锁定内存,不让JVM使用Swap

  • 背景:Swap交换分区对性能和节点稳定性不利,会导致垃圾回收时间延长和节点响应缓慢。
  • 优化建议
    • 临时禁用Swap内存(重启后失效)。
    • 永久减少Swap的使用(通过修改/etc/sysctl.conf文件)。
    • elasticsearch.yml文件中启用bootstrap.memory_lock,锁定内存不让JVM写入Swap。

减少分片数、副本数

  • 分片
    • 背景:分片过小可能导致开销增加,分片过大可能导致频繁Merge和大量IO操作。
    • 优化建议:根据索引大小调整分片数,如15G以下的索引调整为3个分片。
  • 副本数
    • 背景:过多副本会导致ES内部写扩大,影响写入性能。
    • 优化建议:对于日志数据,设置1个副本即可。对于大数据量的索引,可以设置副本数为0以减少对性能的影响。

相关文章:

【企业级分布式系统】ELK优化

文章目录 Elasticsearch作为日志存储时的优化优化ES索引设置优化线程池配置锁定内存,不让JVM使用Swap减少分片数、副本数 Elasticsearch作为日志存储时的优化 linux内核优化、JVM优化、ES配置优化、架构优化(filebeat/fluentd代替logstash、加入kafka做…...

51单片机基础05 定时器

目录 一、为什么要定时器 二、定时器中断 1、定时器中断参数 2、定时器中断程序 3、定时器计数 一、为什么要定时器 前文提到,比如进行流水灯等操作,都是直接写了delay_ms这类操作。 但是在51单片机中,其一般就是靠双for进行的循环时延&…...

tdengine学习笔记实战-jdbc连接tdengine数据库

先上代码,里面有两种获取连接的方式,一个单例,一个连接池 package com.tdengine.utils;import com.alibaba.druid.pool.DruidDataSource;import java.sql.*; import java.util.Properties;public class TDConnectUtils {// 单例对象private …...

vue3项目执行npm install下载依赖报错问题排查方法

1、检查当前node与npm的版本 nodejs 和 npm 的版本是有适配的,具体可以看官网:nodejs 和 npm 的版本是有适配的 若是版本不兼容,修改node或者npm的版本即可,建议使用nvm版本管理工具,切换方便; 2、清除缓…...

【vue】项目迭代部署后 自动清除浏览器缓存

前言&#xff1a; vue项目打包部署上线后&#xff0c;因浏览器缓存问题&#xff0c;导致用户访问的依旧是上个迭代批次的旧资源&#xff0c;需要用户手动清除缓存才能更新至最新版本&#xff0c;影响用户体验。 解决方法&#xff1a; html根文件添加以下标签 <meta http-eq…...

Leetcode(滑动窗口习题思路总结,持续更新。。。)

讲解题目&#xff1a;长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target &#xff0c;找出该数组中满足其和 ≥ target 的长度最小的连续子数组。如果不存在符合条件的连续子数组&#xff0c;返回 0。示例: 输入: target 7, nums [2,3,1,2,4,3] 输出: 2 解…...

【UNIAPP】uniapp版图片压缩工具

二次封装的uniapp版本图片压缩、上传工具&#xff0c;支持全端&#xff08;H5、小程序、APP&#xff09; 新建文件&#xff1a;file-util.js class FileUtil {/*** [文件上传]* param {[object]} fileObj [图片地址]* param {[object]} formData [参数]* param {[str…...

PaddlePaddle 开源产业级文档印章识别PaddleX-Pipeline “seal_recognition”模型 开箱即用篇(一)

AI时代到来&#xff0c;各行各业都在追求细分领域垂直类深度学习模型&#xff0c;今天给大家介绍一个PaddlePaddle旗下&#xff0c;基于PaddleX Pipeline 来完成印章识别的模型“seal_recognition”。 官方地址&#xff1a;https://github.com/PaddlePaddle/PaddleX/blob/relea…...

Vue3 + Vite 项目引入 Typescript

文章目录 一、TypeScript简介二、TypeScript 开发环境搭建三、编译方式1. 自动编译单个文件2. 自动编译整个项目 四、配置文件1. compilerOptions基本选项严格模式相关选项&#xff08;启用 strict 后自动包含这些&#xff09;模块与导入相关选项 2. include 和 excludeinclude…...

微信小程序实战篇-分类页面制作

一、项目背景与目标 在微信小程序开发中&#xff0c;分类页面是一个常见且重要的功能模块。它能够帮助用户快速定位和浏览不同类别的商品或信息&#xff0c;提升用户体验和操作效率。今天&#xff0c;我们将深入探讨如何制作一个实用的微信小程序分类页面&#xff0c;先来看一下…...

第三十七章 如何清理docker 日志

如何清理docker 日志 目标 掌握docker 日志设置掌握docker日志的清理办法背景 在现代软件开发和部署环境中,Docker 容器技术因其轻量级、可移植性和高效资源利用的特点,已成为许多企业和开发团队的首选。Docker 容器在运行过程中会产生大量的日志信息,这些日志对于监控容器…...

二刷代码随想录第七天

454. 四数相加 II 先用map记录前两个数的和num1 num2的值出现了多少次再在后两个数组里找0 - (num1 num2),找到后就累加map中的次数 class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3…...

1.tree of thought (使用LangChain解决4x4数独问题)

本教程将介绍如何使用LangChain库和chatglm API来解决一个4x4的数独问题。我们将通过以下步骤实现这一目标&#xff1a; 初始化chatglm 的聊天模型。定义数独问题和解决方案。创建一个自定义的检查器来验证每一步的思考。使用ToTChain来运行整个思考过程。 1. 初始化chatglm4…...

网络基础(4)IP协议

经过之前的学习对传输协议的学习&#xff0c;对于传输协议从系统底层到应用层对于socket套接字的学习已经有了一套完整的理论。 对于网络的层状结构&#xff0c;现在已经学习到了应用层和传输层: 在之前的学习中&#xff0c;通信的双方都只考虑了双方的传输层的东西&#xff0…...

124. 二叉树中的最大路径和【 力扣(LeetCode) 】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 124. 二叉树中的最大路径和 一、题目描述 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径…...

echarts:简单实现默认显示两柱子折线,点击按钮后显示新的柱子

问&#xff1a; 用echarts实现&#xff1a;默认显示两柱子折线&#xff0c;点击“税率”按钮&#xff0c;显示税率柱子&#xff0c;之前的两柱子折线消失 回答&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8…...

视频里的音频怎么提取出来成单独文件?音频提取照着这些方法做

在数字时代&#xff0c;视频与音频的分离与重组已成为日常需求之一。无论是出于制作背景音乐、保存讲座内容&#xff0c;还是编辑播客素材&#xff0c;提取视频中的音频并将其保存为单独文件都显得尤为重要。视频里的音频怎么提取出来成单独文件&#xff1f;本文将详细介绍几种…...

Excel——宏教程(精简版)

一、宏的简介 1、什么是宏&#xff1f; Excel宏是一种自动化工具&#xff0c;它允许用户录制一系列操作并将其转换为VBA(Visual Basic for Applications)代码。这样&#xff0c;用户可以在需要时执行这些操作&#xff0c;以自动化Excel任务。 2、宏的优点 我们可以利用宏来…...

C++中的std::tuple和std::pair

在C标准库中&#xff0c;std::tuple和std::pair是两种极具实用性的数据结构&#xff0c;它们都具备存储多个元素的功能&#xff0c;但各自有其独特的适用环境和特性。本文旨在深入探讨这两者之间的区别&#xff0c;并阐述在不同应用场景下应如何合理选择使用。 一、基本概念 s…...

引力搜索算法

引力搜索算法过程&#xff0c;包括了初始化、适应度评估、质量计算、加速度计算、更新速度和位置的一些步骤。 import numpy as np import random as rd from math import exp, sqrt import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotli…...

AI大模型学习路线!手把手带你入门_AI大模型学习路线及相关资源推荐

本文详细介绍了AI大模型的基础信息、主要特点、类型&#xff0c;并提供了完整的学习路线图及丰富资源。内容涵盖数学、编程、机器学习、深度学习、自然语言处理等基础知识&#xff0c;以及Transformer模型、预训练模型等核心技术。此外&#xff0c;还强调了理论学习、实践操作和…...

终极窗口调整神器:WindowResizer完整使用指南

终极窗口调整神器&#xff1a;WindowResizer完整使用指南 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的Windows窗口而烦恼吗&#xff1f;无论你是遇到老旧软件界…...

ctf show web入门54

这道题目是 ctf.show 中典型的 命令执行&#xff08;RCE&#xff09;绕过 题。虽然看起来过滤非常严密&#xff0c;但只要理清了它的过滤规则&#xff0c;就能找到生存空间。过滤规则拆解 代码通过 preg_match 过滤了以下内容&#xff08;/i 表示不区分大小写&#xff09;&…...

那些被“写不动“耽误的好想法,现在可以试了

脑子里的想法永远比手头的代码多。想做一个新的仲裁逻辑&#xff0c;想验证一种不同的流水线划分&#xff0c;想试试那个"也许能行"的微架构调整——但最终都没动手&#xff0c;因为光是搭环境、写testbench、跑仿真这一套下来&#xff0c;没有一两周根本出不了结论。…...

Pytorch图像去噪实战(七十三):ELK日志采集实战,集中分析接口异常、慢请求和用户上传问题

Pytorch图像去噪实战(七十三):ELK日志采集实战,集中分析接口异常、慢请求和用户上传问题 一、问题场景:日志散落在各个容器里,排查问题非常痛苦 图像去噪服务上线后,日志会越来越多: FastAPI访问日志 模型推理日志 Nginx访问日志 Worker任务日志 Celery错误日志 GPU异…...

公交查询|智能公交|公交线路查询|基于SprinBoot+vue智能公交系统(源码+数据库+文档)

公交查询|智能公交|公交线路查询系统 目录 基于SprinBootvue智能公交系统 一、前言 二、系统设计 三、系统功能设计 1用户模块实现 2管理员服务端模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介…...

内容创作团队如何通过多模型选型提升文案生成质量与效率

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 内容创作团队如何通过多模型选型提升文案生成质量与效率 对于新媒体运营和内容营销团队而言&#xff0c;持续产出高质量、风格多样…...

OpenClaw AI助手公网部署安全加固实战:从SSH防护到成本优化

1. 项目概述&#xff1a;为你的AI助手穿上“防弹衣” 如果你正在一台VPS或云服务器上运行OpenClaw&#xff08;或者说Clawdbot&#xff09;&#xff0c;并且隐隐觉得“把能执行Shell命令的AI直接暴露在公网上”这事儿有点“刺激”&#xff0c;那你的直觉是对的。这感觉就像把自…...

51单片机项目进阶:给电子秤加上JQ8400语音播报,一线串口控制到底有多方便?

51单片机电子秤语音播报模块深度实战&#xff1a;从JQ8400-FL选型到一线串口控制全解析 当你已经完成基础电子秤项目&#xff0c;能够准确显示重量并计算价格时&#xff0c;如何让这个设备"会说话"&#xff1f;语音交互功能的加入不仅能提升用户体验&#xff0c;更能…...

工程师幽默:从EE Times标题竞赛看技术文化表达与沟通艺术

1. 从“Wizard of Woz”看工程师文化的幽默表达看到“Wizard of Woz”这个标题&#xff0c;很多老电子工程师或硅谷历史爱好者大概会心一笑。这显然是在玩一个经典的双关梗——“Wizard of Oz”&#xff08;绿野仙踪&#xff09;和“Woz”&#xff08;史蒂夫沃兹尼亚克&#xf…...