关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 算法设计 »如何利用单台服务器实现10万多个Git仓库托管

    如何利用单台服务器实现10万多个Git仓库托管

    2015-01-07 00:00:00 出处:夏天的森林
    分享

    在单台服务器上就可以托管 10 万多个仓库,GitLab.com 是如何做到的呢?来看 GitLab.com 是如何自建服务和扩展存储来满足这么多仓库的托管。

    以下为译文:

    你想在任何地方免费托管公共/私有仓库吗?可以选择 GitLab.com,我们已经在上面托管过一个单例 GitLab,已有将近 20000 人积极地使用 GitLab 来托管仓库,并且一台服务器就已托管 10 万多个仓库。

    单一服务器

    之前,GitLab.com 托管在亚马逊上,使用的是 AWS 上最高的配置实例。但随着用户数的增长,以及我们只能进行垂直扩展和 CPU 绑定,所以,我们必须寻找 AWS 替代品。

    100K 仓库需要占用好几个 TB 空间,所以,存储能力变得相当重要。因为我们使用的是 git,所以,我们只能选择单一的文件系统,而不是对象存储(比如 S3)。我们希望能够轻松地扩展存储,此外,成千上万个用户在 push 和 pull 他们的代码,这样就会给 CPU 带来一定的负担。因此,我们需要更多的 CPU 核来减轻高负载带来的压力。

    事实证明,我们使用自己的服务器是迄今为止最具性价比的选择了。

    目前,我们有两台独立服务器用来运行 GitLab.com,其中一台是活动的主服务器,另外一台备用。服务器配置如下:

    服务器型号:HP DL180 G6 (2009 年引进) 处理器:2x X5690 (共 24 核) 32GB RAM 12x 2TB HDDs (其中两个用于 root 卷,使用 RAID 1,另外 10 个磁盘使用 RAID 10 ext4 文件系统)

    实际上,我们开始只用了 16 个核,但又增加了 8 核来取代 CPU,从而减少 CPU-bound 加载。

    故障和故障转移

    弃用 AWS 意味着我们不可以再使用任何 AWS 功能,因此,为了预防宕机等现象发生,我们需要进行故障转移。

    我们使用 DRBD 来创建一台主服务器和一台从服务器,其中一个服务器作为应用服务器,并且应该是活动的,假如出现问题,我们会通知 DRBD 来开启另一台服务器作为备用。

    我们的 DRBD 工具以及完成构建,并且提供给我们的用户。

    未来扩展

    GitLab.com 目前在已有的硬件上能够很好的运行,但其正以前所未有的速度在增长。扩展当前的硬件将会非常昂贵,而且并不会轻而易举完成。

    未来,GitLab.com 将会再次托管在 AWS 上面,横向扩展也会变得非常轻松。此外亚马逊刚刚宣布了超过 10TB 的 ESB 卷,这将让我们的移植变得容易。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    Edge浏览器百度被劫持/篡改怎么办,地址后边跟着尾巴#tn=68018901_7_oem_dg

    Google Chrome 在 iPhone 上新增了 Safari 数据导入选项

    Windows 11专业版 KMS工具激活产品密钥的方法

    DEDECMS安全策略官方出品

    Microsoft Text Input Application 可以关闭吗?

    新版本QQ如何关闭自带的浏览器?

    C++编程语言中continue的用法和功能,附举例示范代码

    c++ map 的数据结构、基本操作以及其在实际应用中的使用。

    C语言如何避免内存泄漏、缓冲区溢出、空指针解引用等常见的安全问题

    C语言中的break语句详解

    IT头条

    马斯克2026最新采访总结:2040年,全球机器人数量将突破100亿台

    23:52

    专家解读|规范人工智能前沿业态健康发展的新探索:解读《人工智能拟人化互动服务管理暂行办法》

    00:54

    用至强 6高存力搞定MoE卸载!

    17:53

    美国将允许英伟达向中国“经批准的客户”出售H200 GPU

    02:08

    苹果与微信就15%手续费达成一致?腾讯未置可否

    22:00

    技术热点

    PHP 和 Node.js 的10项对比挑战

    Javascript闭包深入解析及实现方法

    windows 7、windows 8.1手动增加右键菜单功能技巧

    MYSQL出错代码大汇总

    windows 7假死机怎么办 windows 7系统假死机的原因以及解决方法

    Ubuntu(Linux)下配置IP地址的方法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。