簡體   English   中英

如何增加gitlab CE lfs文件大小限制,以免出現500個服務器錯誤?

[英]How can I increase gitlab CE lfs file size limitation as to not get 500 server errors?

我正在使用出色的sameersbn / gitlab為我的工作設置自定義gitlab服務器。

所以我有一個荒謬的場景,我正在使用git lfs使用gitlab ce v8.12.5存儲10-20 GB范圍內的文件,但是我發現到處都是500個服務器錯誤,我的上傳無法完成。

問題:有誰知道我可以增加服務器端限制嗎?

注意:這不是413 nginx的問題,我將client_max_body_size 500G設置為client_max_body_size 500G因此應該將其轉發到gitlab就可以了。

如果需要更多信息(例如日志文件等),我會很樂意提供,只需發表評論即可。

Update.1:

在同一問題上似乎存在相關的gitlab問題。

Update.2

其他相關資源:

目前,我的假設是docker容器中的鏈服務器或代理服務器中某處存在超時。

git bash:錯誤:RPC失敗; 結果= 18,HTP代碼= 200B | 1KiB /秒

https://github.com/gitlabhq/gitlabhq/issues/694

所以這是我剛剛注意到docker映射的設備/dev/dm-7幾乎在gitlab錯誤出現500的同時變為100%充滿的情況。

現在,我開始相信這不是gitlab問題,而是docker問題,而且gitlab的空間即將用完。

感謝您的寶貴時間,並為您加油打氣。

問題1

第一個主要問題是~/log/gitlab-workhorse.log的以下錯誤

error: handleStoreLfsObject: copy body to tempfile: unexpected EOF

這個錯誤與gitlab本身無關 ,但是最新版本的docker決定將默認容器大小從100G /容器縮小到10G /容器,因此,這意味着每當我嘗試上傳大於10GB的文件時,gitlab會嘗試制作一個大小為上載文件的臨時文件 (在我的情況下為30GB),隨后由於docker容器中空間不足而出現上述錯誤消息。

我遵循了有關如何增加容器大小的出色指南 ,但基本上可以歸結為:

    sudo `which docker-compose` down

停止正在運行的容器。

    sudo vim /etc/systemd/system/docker.service

並附加

    --sotrage-opt dm.basesize=100G

作為新基本圖像的默認大小。 現在,由於docker似乎存在當前問題,您必須

   sudo `which docker` rmi gitlab

假設您的圖片稱為gitlab ,並且

   sudo `which docker-compose` up

重新拉動圖像並以適當的尺寸創建圖像。

如果仍然不能解決問題,請嘗試sudo systemctl restart docker.service因為當sudo systemctl restart docker.service似乎不執行您要求的操作時,這似乎sudo systemctl restart docker.service

    sudo docker exec -it gitlab df -h

應該產生如下內容:

Filesystem                                                                                        Size  Used Avail Use% Mounted on

/dev/mapper/docker-253:1-927611-353ffe52e1182750efb624c81a3a040d5c054286c6c5b5f709bd587afc92b38f  100G  938M  100G   1% /

我不是100%肯定所有這些設置都是必需的,但是在解決下面的問題2時,我最終不得不在docker-compose.yml中也進行了設置。

    - GITLAB_WORKHORSE_TIMEOUT=60m0s
    - UNICORN_TIMEOUT=3600
    - GITLAB_TIMEOUT=3600

問題2

除了將容器的大小從10GB調整為100GB之外,我還必須向正在運行的實例中添加以下內容:

原因是文件大小太大(30GB +),網絡速度太慢(10MB / s),以至於上載花費的時間比默認的nginx長,並且由於504 Gateway Timeout

    sudo docker exec -it /bin/bash

gitlab容器的vim.tiny /etc/nginx/nginx.conf

    http {
    ...
      client_max_body_size 500G;
      proxy_connect_timeout       3600;
      proxy_send_timeout          3600;
      proxy_read_timeout          3600;
      send_timeout                3600;
    ...
    }

然后我重新啟動了nginx。 可悲的是, service restart nginx無法正常工作,我不得不:

    service stop nginx
    service start nginx

注意:我有一個反向代理程序在此服務器上運行,它可以捕獲所有http請求,所以我不確定,但是我相信我添加到容器的nginx配置中的所有設置都必須在代理端重復

如果我沒有采取任何措施,或者您想對程序中特定部分的執行方式進行一些澄清, 發表評論並詢問。 這是一種皇家痛苦,我希望可以幫助某人解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM