-
一、概述1.1 背景介绍说实话,Nginx调优这事儿我踩过无数坑。记得2019年双11,我们电商平台流量暴涨,Nginx直接扛不住了,QPS从平时的2万飙升到8万,响应时间从50ms飙到了2秒,最后还是靠临时加机器扛过去的。那次事故之后,我花了大半年时间专门研究Nginx的性能极限,总结出了这20条黄金法则。Nginx作为目前最流行的Web服务器和反向代理,官方数据显示单机可以轻松处理10万+的并发连接。但实际生产环境中,很多同学拿到默认配置就直接上了,结果发现连1万并发都扛不住。问题不在Ngi
-
五、故障排查和监控5.1 故障排查◆ 5.1.1 日志查看# 查看 Prometheus 日志中的规则评估错误journalctl -u prometheus | grep -i "rule" | tail -50# 查看规则评估耗时curl -s http://localhost:9090/api/v1/rules | jq '.data.groups[].rules[] | select(.health != "ok")'# Kubernet
-
一、概述1.1 背景介绍在大规模微服务架构下,Prometheus 告警系统往往会陷入一个尴尬的境地:告警太多,运维团队开始选择性忽略;告警太少,真正的故障又可能漏掉。我在某电商平台负责监控体系建设时,团队每天要处理超过 2000 条告警,其中 70% 以上是重复的、关联的或者短暂抖动产生的噪声。Recording Rules 是 Prometheus 提供的预计算机制,可以将复杂的查询表达式预先计算并存储为新的时间序列。通过合理设计 Recording Rules,我们不仅能显著降低 Prom
-
四、最佳实践和注意事项4.1 最佳实践4.1.1 性能优化优化点一:减少 Git 轮询频率# argocd-cm ConfigMapapiVersion: v1kind: ConfigMapmetadata: name: argocd-cm namespace: argocddata: timeout.reconciliation: 300s # 默认 180
-
一、概述1.1 背景介绍GitOps 作为云原生时代的运维范式,将 Git 作为基础设施和应用配置的单一事实来源,通过声明式配置和自动化同步机制,实现了配置管理的版本控制、审计追溯和快速回滚。ArgoCD 作为 CNCF 毕业项目,提供了完整的 GitOps 工作流,支持多集群管理、RBAC 权限控制、SSO 集成等企业级特性。结合 Kustomize 的配置管理能力,能够优雅地解决多环境配置差异、敏感信息管理、配置复用等问题。在传统的 CI/CD 流程中,往往由 CI 工具直接执行 kubec
-
在CentOS 7中,默认情况下并不会安装命令补全包,需要手动安装才能使用命令补全功能。以下是在CentOS 7中安装命令补全包的方法:1. bash-completion:这是一个针对Bash shell的命令补全软件包,可以提供对系统命令、用户自定义命令和文件路径的自动补全功能。可以通过以下命令安装:```sudo yum install bash-completion```安装完成后,需要在/etc/profile配置文件中添加以下内容:```if [ -f /etc/bash_compl
-
Centos 7.x环境,Systemd下的服务文件描述符限制不生效
-
CentOS7 开启 NSCD 缓存服务以减少集群压力
-
一、什么是挖矿木马挖矿木马会占用CPU进行超频运算,从而占用主机大量的CPU资源,严重影响服务器上的其他应用的正常运行。黑客为了得到更多的算力资源,一般都会对全网进行无差别扫描,同时利用SSH爆破和漏洞利用等手段攻击主机。部分挖矿木马还具备蠕虫化的特点,在主机被成功入侵之后,挖矿木马还会向内网渗透,并在被入侵的服务器上持久化驻留以获取最大收益。挖矿木马的整体攻击流程大致如下图所示:二、挖矿木马中招特征挖矿木马会在用户不知情的情况下利用主机的算力进行挖矿,最明显的特征就是主机的CPU被大量消耗,查
-
一、Acme.sh 自动续期失败的症状问题描述如下,续期的时候,提示如下错误:root@dc:~# "/data/acme.sh"/acme.sh --cron --home "/data/acme.sh" > /dev/null[Sun Nov 10 23:52:17 CST 2020] Error, can not get domain token entry example.com[Sun Nov 10 23:52:17 CST 2020] Please check log file
-
背景:线上的机器是使用的ECS,磁盘空间只有50G,而journal日志就占了4G左右,所以就要限制下存储大小和保存时间。介绍:1、查看journal占用磁盘空间大小:journalctl --disk-usage2、指定journal占用磁盘空间大小:journalctl --vacuum-size=1G3、指定journal日志保存时间:journalctl --vacuum-time=1years #年journalctl --vacuum-time=1month #月journalctl
-
背景当初表结构设计不合理,表自增id达到2147483647,无法继续写入 ;重新设计新表将id int(10)更改为id bigint(20),执行语句:RENAME TABLE t_crowd_user TO t_crowd_user_old_0606, t_crowd_user_tmp TO t_crowd_user;卡表,现象如下解决方案: 1、 查询影响的事务 MySQ
-
使用场景在线数据库的维护中,总会涉及到研发修改表结构的情况,修改一些小表影响很小,而修改大表时,往往影响业务的正常运转,如表数据量超过500W,1000W,甚至过亿时在线修改大表的可能影响在线修改大表的表结构执行时间往往不可预估,一般时间较长由于修改表结构是表级锁,因此在修改表结构时,影响表写入操作如果长时间的修改表结构,中途修改失败,由于修改表结构是一个事务,因此失败后会还原表结构,在这个过程中表都是锁着不可写入修改大表结构容易导致数据库CPU、IO等性能消耗,使MySQL服务器性能降低在线修
-
描述提问如何在MySQL中筛选出全表扫描的SQL语句,而非通过explain命令一条条SQL语句进行查看。解决方案1、设置long_query_time时间足够大,尽量让非全表扫描且执行时间长的SQL语句不记录到慢查询日志(slow log)中;设置log_queries_not_using_indexes=on;至此全表扫描的SQL语句被记录到slow log中,值得注意的是,执行时间超过long_query_time的SQL语句也将记录到slow log中,无论该SQL语句是否使用索引。2、
-
准备工作确保你要申请证书的域名都解析到了这台服务器上,且能直接通过域名访问。使用官网推荐的CertBot获取证书。在CertBot官网选择一下环境(比如我选Nginx on Ubuntu 17.04)就可以看到入门教程了。安装CertBot12345apt-get updateapt-get install software-properties-commonadd-apt-repository ppa:certbot/certbotapt-get updateapt-get