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相关推荐

  1. 导入另一个 Git库到现有的Git库并保留提交记录

    提取出的主要步骤如下: 1 切换到要合并到的仓库 2 git remote add 仓库名 被合并仓库路径 3 git fetch --all 4 git merge 仓库名/被合并仓库想合并的分支 ...

  2. nginx配置php域名访问,nginx+php+composer+git+域名配置+项目访问

    本文作者: 架构师刘涛? -------------- epel仓库安装 epel是yum的软件源,里面包含了许多基本源里没有的软件 #默认的yum源无法升级PHP,需要添加第三方yum源,我们选择w ...

  3. Vue实现仿音乐播放器11-实现访问百度音乐API实现播放音乐功能

    场景 从今日推荐页面点击某首歌曲会将这首歌曲的songid通过路由传递到播放界面, 播放界面调用百度音乐接口实现数据的获取以及音乐的播放. 效果 实现 配置路由 首先在pages目录下新建musicp ...

  4. 压测导致mysql数据库CPU很高_排查压测问题引发的系统性能调优过程

    前言:今天测试部门的小梦找到我,委屈巴巴的说我写的接口有问题,因为她对这个接口进行压力测试时,发现系统的吞吐量一直上不去,并且 应用服务器 (部署接口项目的服务器) 的CPU.内存等资源的使用率也一直 ...

  5. 【番外篇】2W字诚意满满的新活:常见接口测试69道面试题,附带答案

    最近发现面试题热度 挺好的,不过大家博客都只有面试题,从来都不带答案,顺手就码了点收集到的博客问题的答案 共69道,2W字,耗时两天(疯狂暗示)欢迎催更吹水,来一个人就是一份催更动力点击并输入暗号:C ...

  6. Web自动化测试面试

    一.Web 自动化测试 1.Selenium 中 hidden 或者是 display = none 的元素是否可以定位到? 不能,可以写 JavaScript 将标签中的 hidden 先改为 0, ...

  7. 面经---测试工程师web端自动化---大厂面试题

    前言: 一.Web 自动化测试 1.Selenium 中 hidden 或者是 display = none 的元素是否可以定位到? 不能,可以写 JavaScript 将标签中的 hidden 先改 ...

  8. 花一周时间整理了3.5W字的全栈自动化测试面试题(答案+学习路线)!为了找到好工作,拼了!

    目录 前言: 一.Web自动化测试面试题 二.APPUI自动化测试面试题 三.接口自动化测试面试题 四.全栈自动化测试学习路线图及全栈资料分享 前言: 这篇文章是为大家在网上收集整理的软件测试面试题目 ...

  9. 软件测试面试题全网独家没有之一的资深测试工程师面试题集锦

    前言: 这篇文章是凡叔集结最近凡叔在面试题的朋友们的面试题,基本上多的不敢说这里的题目你背完起码能压中百分之80,其中也有很多相对比较刁钻的问题,经过我们一整个群兄弟的整合以及收集最终出现了这么一篇文 ...

最新文章

  1. 【百度地图API】如何制作班级地理通讯录?LBS通讯录
  2. HTML基础第七讲---框架
  3. 高德推出查岗功能_新型「查岗」工具?高德推出「家人地图」新功能
  4. SpringBoot 集成 clickhouse + mybatis-plus 配置及使用问题说明(含建表语句、demo源码、测试说明)
  5. boost::geometry::topological_dimension用法的测试程序
  6. Angular应用里setTimeout被如何被monkey patched的
  7. python输入input数组_Python学习——实现简单的交互raw_input的使用
  8. 【Dart学习】-- Dart之泛型
  9. java manager.apk_java实现静默安装apk
  10. 时间模块(import time)
  11. html5 超链接 图像映射,链接图像
  12. Server 2012 R2 RMS文档管理系统
  13. 朱晔的互联网架构实践心得S2E3:品味Kubernetes的设计理念
  14. 浅析数据中心存储发展趋势
  15. Mac电脑中delete键的几种用法
  16. 保护你的隐私,五种控制Android应用的权限的方法
  17. window XP驱动开发(一)如何下载WDK
  18. C++实现双人枪战游戏
  19. CGAN(条件生成-对抗网络)简述教程
  20. 昆虫繁殖《信息学奥赛一本通-递推算法》

热门文章

  1. 宽带651以及光猫红色灯闪烁-故障维修
  2. 数学狂想曲(十)——复变函数, 平稳离散时间随机过程, 功率谱
  3. 的原型是什么_学习服装原型是什么?
  4. 解决cc1plus.exe: out of memory allocating bytes
  5. Spring AOP 应用篇
  6. virtualenvwrapper 的安装和使用
  7. BBSSDK论坛移动化实现方案
  8. nginx proxy cache配置参数解读
  9. Bootstrap学习3
  10. 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)...