git压测出现访问500
git 启动之后根据cpu的内核数据创建和内核数目相等的进程数:
root 29694 29669 0 2017 ? 00:00:00 runsv redis
root 29743 29669 0 2017 ? 00:00:00 runsv unicorn
root 29744 29743 0 2017 ? 00:00:00 svlogd -tt /var/log/gitlab/unicorn
root 29775 29669 0 2017 ? 00:00:00 runsv sidekiq
root 29786 29669 0 2017 ? 00:00:00 runsv gitlab-workhorse
root 29800 29669 0 2017 ? 00:00:00 runsv nginx
root 29848 29669 0 2017 ? 00:00:00 runsv logrotate
git 30489 29786 0 15:57 ? 00:00:02 /opt/gitlab/embedded/bin/gitlab-workhorse -listenNetwork unix -listenUmask 0 -listenAddr /var/opt/gitlab/gitlab-workhorse/socket -authBackend http://localhost:8080 -authSocket /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket -documentRoot /opt/gitlab/embedded/service/gitlab-rails/public -pprofListenAddr -secretPath /opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secret
git 30551 29743 0 15:57 ? 00:00:01 /bin/bash /opt/gitlab/embedded/bin/gitlab-unicorn-wrapper
git 30567 1 0 15:57 ? 00:00:14 unicorn master -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git 30609 30567 0 15:58 ? 00:00:15 unicorn worker[0] -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git 30612 30567 0 15:58 ? 00:00:20 unicorn worker[1] -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git 30615 30567 0 15:58 ? 00:00:14 unicorn worker[2] -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git 30618 30567 0 15:58 ? 00:00:17 unicorn worker[3] -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git 30621 30567 0 15:58 ? 00:00:13 unicorn worker[4] -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git 30624 30567 0 15:58 ? 00:00:18 unicorn worker[5] -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git 30627 30567 0 15:58 ? 00:00:14 unicorn worker[6] -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git 30630 30567 0 15:58 ? 00:00:14 unicorn worker[7] -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git 30633 30567 0 15:58 ? 00:00:15 unicorn worker[8] -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
每一个git 任务过来就会放进一个进程里面去处理。
每一个git 进程就是一个unicorn(独角兽),也可以理解成一个git rails(git 执行轨道)。
并发的几个线程,其中一个是master pid = 30567
其他的slave worker都是master 创建的,父进程id都是30567
/var/opt/gitlab/gitlab-rails/etc/unicorn.rb 文件:
# This file is managed by gitlab-ctl. Manual changes will be
# erased! To change the contents below, edit /etc/gitlab/gitlab.rb
# and run `sudo gitlab-ctl reconfigure`.# What ports/sockets to listen on, and what options for them.
listen "127.0.0.1:8080", :tcp_nopush => true
listen "/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket", :backlog => 1024working_directory '/var/opt/gitlab/gitlab-rails/working'# What the timeout for killing busy workers is, in seconds
timeout 60# Whether the app should be pre-loaded
preload_app true# How many worker processes
worker_processes 9# What to do before we fork a worker
before_fork do |server, worker|old_pid = "#{server.config[:pid]}.oldbin"if old_pid != server.pidbeginsig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOUProcess.kill(sig, File.read(old_pid).to_i)rescue Errno::ENOENT, Errno::ESRCHendendActiveRecord::Base.connection.disconnect! if defined?(ActiveRecord::Base)end# What to do after we fork a worker
after_fork do |server, worker|ActiveRecord::Base.establish_connection if defined?(ActiveRecord::Base)end# Where to drop a pidfile
pid '/opt/gitlab/var/unicorn/unicorn.pid'# Where stderr gets logged
stderr_path '/var/log/gitlab/unicorn/unicorn_stderr.log'# Where stdout gets logged
stdout_path '/var/log/gitlab/unicorn/unicorn_stdout.log'# Min memory size (RSS) per worker
ENV['GITLAB_UNICORN_MEMORY_MIN'] = (400 * 1 << 20).to_s# Max memory size (RSS) per worker
ENV['GITLAB_UNICORN_MEMORY_MAX'] = (650 * 1 << 20).to_s
在unicorn.rb中设置了 timeout, 压测返回500 就是 这个造成的,将timeout设置600.
git压测出现访问500相关推荐
- 导入另一个 Git库到现有的Git库并保留提交记录
提取出的主要步骤如下: 1 切换到要合并到的仓库 2 git remote add 仓库名 被合并仓库路径 3 git fetch --all 4 git merge 仓库名/被合并仓库想合并的分支 ...
- nginx配置php域名访问,nginx+php+composer+git+域名配置+项目访问
本文作者: 架构师刘涛? -------------- epel仓库安装 epel是yum的软件源,里面包含了许多基本源里没有的软件 #默认的yum源无法升级PHP,需要添加第三方yum源,我们选择w ...
- Vue实现仿音乐播放器11-实现访问百度音乐API实现播放音乐功能
场景 从今日推荐页面点击某首歌曲会将这首歌曲的songid通过路由传递到播放界面, 播放界面调用百度音乐接口实现数据的获取以及音乐的播放. 效果 实现 配置路由 首先在pages目录下新建musicp ...
- 压测导致mysql数据库CPU很高_排查压测问题引发的系统性能调优过程
前言:今天测试部门的小梦找到我,委屈巴巴的说我写的接口有问题,因为她对这个接口进行压力测试时,发现系统的吞吐量一直上不去,并且 应用服务器 (部署接口项目的服务器) 的CPU.内存等资源的使用率也一直 ...
- 【番外篇】2W字诚意满满的新活:常见接口测试69道面试题,附带答案
最近发现面试题热度 挺好的,不过大家博客都只有面试题,从来都不带答案,顺手就码了点收集到的博客问题的答案 共69道,2W字,耗时两天(疯狂暗示)欢迎催更吹水,来一个人就是一份催更动力点击并输入暗号:C ...
- Web自动化测试面试
一.Web 自动化测试 1.Selenium 中 hidden 或者是 display = none 的元素是否可以定位到? 不能,可以写 JavaScript 将标签中的 hidden 先改为 0, ...
- 面经---测试工程师web端自动化---大厂面试题
前言: 一.Web 自动化测试 1.Selenium 中 hidden 或者是 display = none 的元素是否可以定位到? 不能,可以写 JavaScript 将标签中的 hidden 先改 ...
- 花一周时间整理了3.5W字的全栈自动化测试面试题(答案+学习路线)!为了找到好工作,拼了!
目录 前言: 一.Web自动化测试面试题 二.APPUI自动化测试面试题 三.接口自动化测试面试题 四.全栈自动化测试学习路线图及全栈资料分享 前言: 这篇文章是为大家在网上收集整理的软件测试面试题目 ...
- 软件测试面试题全网独家没有之一的资深测试工程师面试题集锦
前言: 这篇文章是凡叔集结最近凡叔在面试题的朋友们的面试题,基本上多的不敢说这里的题目你背完起码能压中百分之80,其中也有很多相对比较刁钻的问题,经过我们一整个群兄弟的整合以及收集最终出现了这么一篇文 ...
最新文章
- 【百度地图API】如何制作班级地理通讯录?LBS通讯录
- HTML基础第七讲---框架
- 高德推出查岗功能_新型「查岗」工具?高德推出「家人地图」新功能
- SpringBoot 集成 clickhouse + mybatis-plus 配置及使用问题说明(含建表语句、demo源码、测试说明)
- boost::geometry::topological_dimension用法的测试程序
- Angular应用里setTimeout被如何被monkey patched的
- python输入input数组_Python学习——实现简单的交互raw_input的使用
- 【Dart学习】-- Dart之泛型
- java manager.apk_java实现静默安装apk
- 时间模块(import time)
- html5 超链接 图像映射,链接图像
- Server 2012 R2 RMS文档管理系统
- 朱晔的互联网架构实践心得S2E3:品味Kubernetes的设计理念
- 浅析数据中心存储发展趋势
- Mac电脑中delete键的几种用法
- 保护你的隐私,五种控制Android应用的权限的方法
- window XP驱动开发(一)如何下载WDK
- C++实现双人枪战游戏
- CGAN(条件生成-对抗网络)简述教程
- 昆虫繁殖《信息学奥赛一本通-递推算法》
热门文章
- 宽带651以及光猫红色灯闪烁-故障维修
- 数学狂想曲(十)——复变函数, 平稳离散时间随机过程, 功率谱
- 的原型是什么_学习服装原型是什么?
- 解决cc1plus.exe: out of memory allocating bytes
- Spring AOP 应用篇
- virtualenvwrapper 的安装和使用
- BBSSDK论坛移动化实现方案
- nginx proxy cache配置参数解读
- Bootstrap学习3
- 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)...