Kylin V10 下 MySQL 容器内存占用异常的解决方法
博主在文章中详细介绍了如何解决Kylin V10系统下MySQL容器内存占用异常的问题。最初,MySQL容器启动时内存占用超过20GB,无业务运行时也高达16GB,远高于正常情况下的几百MB。通过一系列排查,发现是由于`open_files_limit`参数在Kylin V10下取值异常导致的。博主尝试了多种方法调整内存相关参数,但效果不佳。最终,通过对比不同系统下的MySQL参数,确定`open_files_limit`参数存在巨大差距。为了解决问题,博主修改了MySQL容器的启动脚本`docker-entrypoint.sh`,在第391行添加了设置`ulimit -n 1048576`的命令,并重新构建了MySQL镜像,成功解决了内存占用异常的问题。整个过程虽然耗时较长,但博主不仅解决了实际问题,还积累了宝贵的实战经验。
Kylin V10 下 MySQL 容器内存占用异常的解决方法(续)
博主深入探究了Kylin V10下MySQL容器内存占用异常的根本原因,发现与Docker的LimitNOFILE设置有关,并提供了修改方法。
GitLab 禁用 RACK ATTACK 机制
文章描述了公司内部自建GitLab服务中遇到的频繁403错误问题,该问题是由于RACK ATTACK模块对来自负载均衡设备IP的请求进行了限制。为解决此问题,首先尝试了临时方法——通过删除Redis中的特定key来解除IP封禁,但这不是长久之计。接着探索了官方文档提供的配置修改方案,但由于环境差异未能直接应用。进一步分析发现,可以通过调整Kubernetes部署下的环境变量`RACK_ATTACK_ENABLED`来控制RACK ATTACK模块的状态。最终,通过将`RACK_ATTACK_ENABLED`设置为`false`成功解决了问题,使研发团队能够正常访问GitLab服务。此外,也提到了另一种解决方案是保持RACK ATTACK启用但添加白名单的方式。
僵尸进程、进程状态简介
本文介绍了Linux系统中的僵尸进程及其产生原因。僵尸进程是指子进程执行完成后,父进程未读取其退出状态并回收资源导致的特殊状态。僵尸进程主要由两种情况引起:一是父进程未回收子进程资源;二是父进程先于子进程结束,使子进程成为孤儿进程。尽管僵尸进程不占用CPU资源,但会占用内存和进程表位置,大量存在时可能影响系统性能。此外,文章还简述了Linux进程的状态转换过程,包括运行状态、休眠状态及与进程终止相关的EXIT_ZOMBIE和EXIT_DEAD状态。
使用 Nginx 搭建正向代理
本文介绍了如何使用Nginx搭建正向代理服务器。首先,通过yum命令在CentOS上安装Nginx。接着,配置`nginx.conf`文件以设置基本的Nginx参数如worker进程数、日志格式等,并创建`default.conf`文件来指定监听端口8118及相关的代理配置选项。完成配置后,通过重启Nginx服务并使用curl命令进行测试验证其功能。若遇到HTTP 400错误,则需要安装额外的`ngx_http_proxy_connect_module`模块来支持CONNECT方法,这包括安装依赖包、克隆项目源码、应用补丁以及重新编译安装Nginx。该过程确保了Nginx能够正确地作为正向代理工作。