記錄一下搞nextcloud的辛酸事吧

2022-09-07 03:15:11 字數 1891 閱讀 8810

前段時間,利用centos7 + nginx + php8 + mysql8 部署了乙個nextcloud,首選的是當時最新穩定版的nc22,根據官方文件一步步操作下來,遇到了很多問題

部署完成後,nc首次登入不上的、登入上去,無限迴圈 /remote.php/d**的,還有乙個樣式混亂的(重啟web服務就好了,也不知道為什麼)。

後面換了nc21版本,就沒這些問題了。。。。。

部署完成之後,開始改**,支援單點登入。不得不說,nextcloud的**真不錯,耦合性不強。

登入驗證是通過 oc\authentication\login\chain 構建的鏈條一步步驗證下去的

(真不錯,這**,單點登入的驗證也就是加在這鏈條上)

改完單點登入,又發現了新的問題。上傳速度慢,最終的解決方法是,把php,nginx上傳的引數配置調大,同時,不限制nextcloud檔案分塊大小。

後面通過掛載,掃瞄新增了幾百上千萬的檔案,這時候,又出現了乙個問題。。。

就是mysql的cpu占用很高(一直)。說說我處理的過程:

一開始,我以為是sql語句執行慢,導致的,跑去看了慢日誌,結果沒什麼發現,後面又將fpm的日誌,nginx的錯誤日誌都看了,一樣沒什麼發現。

通過show full processlist看到有幾個執行緒執行一樣的sql語句,執行時間很長,一直都是executing的狀態。但不知道是在哪觸發的。

索性,我把nginx關閉,php-fpm關閉,但是mysql的cpu負載還是下不來。這時候,可以想到應該是定時任務觸發的sql語句了。

後面通過nextcloud社群了解到,很多人都出現這個問題和檔案掃瞄的定時任務每隔12個小時就會執行一次。在show full processlist中的time可以驗證這一點,說明是從檔案掃瞄的定時任務觸發的sql查詢。

想要解決這個問題,可以直接關閉檔案掃瞄的後台任務,如果是通過web上傳的檔案,一般不會觸發檔案掃瞄的,我是通過掛載,而且掛載檔案很多,檔案和資料夾的大小都沒有進行統計,才會觸發的。

這裡放一下sql語句 (順便提一下:oc_filecache的資料量在1300w左右,oc_mounts的資料量在500左右)

select

max(`user_id`) from `oc_filecache` `f` inner

join `oc_mounts` `m` on `storage_id` = `storage` where `size` <

0group

by `storage_id` limit 500

;select `path` from `oc_filecache` where (`storage` =

18 ) and (`size` <

0 ) order

by `fileid` desc limit 1;

一共發現兩條sql語句會出現這樣的問題。通過分析,發現 這兩條語句執行時索引都沒有用對(stroage,size 和 size都是有索引的)。這兩條sql語句可以執行很久很久。。。。。

一開始我還以為是產生了死鎖,但是不是,其實就是一直在執行,沒有盡頭。

我還用strace -p 分析了php定時任務的程序,就一直在restart_syscall,應該是在等待sql返回資料。

後面看了oc_filecache的資料發現,size < 0的情況就只有 size = -1 (等於查詢肯定比範圍查詢要好啊),所以最後就把size < 0 改成了size = -1了。雖然sql查詢還有有點慢,但至少能結束,返回資料,總比之前沒有返回的執行好。

但是如果,size < 0 的情況有很多種,那就不適用了。。。。

按照上面的處理後,mysql的負載就下來了,也沒有定時任務一直在等待返回了。

如果有人知道關於nextcloud的其它問題和解決辦法,請告訴我,不勝感激(因為後面還要對它進行二開)

算是告一段落吧。。。

2020 06 07記錄一下

軟體測試技術型方向 自動化測試工程師,效能測試工程師,安全測試工程師等專項技術方發展 初級軟體測試人員專業知識 1 軟體功能測試技術,體現在用例設計和缺陷設計兩方面。主要包括軟體需求規格說明書的評審 測試計畫 測試用例設計技術 環境搭建 測試執行 缺陷提交 回歸測試 測試報告等。2 web自動化測試...

記錄一下進展

最近倆周都在除錯caffe的windows和matlab聯合使用,真的是超級鬱悶的一段時間。caffe編譯通過,但是目前有些不能用,當使用image data時,prototxt檔案解析失敗,我也不知道到底怎麼回事。另外乙個,在matlab呼叫caffe的mex檔案時,總是在初始化就失敗了。具體原因...

記錄一下最近的心情

qq空間一直不好用,只好轉到這裡,寫一寫最近的心情。這幾天發生了很多事情。在同病魔搏鬥了很久之後,奶奶撒手人寰,離我們而去了。對於親人的離開,我沒有經受過太多,爺爺走的時候我才十歲,姥姥走的時候因為種種原因我沒有收到訊息。現在奶奶也去了。我很難過。我沒有盡到孫子的孝心,沒有特別在意這個將我一直掛在嘴...