จากการทดสอบหลายชั่วโมง ฉันพบว่าไคลเอนต์การซิงค์เดสก์ท็อป nextcloud สำหรับ ubuntu 20.04 (appimage หรือ ppa) ทั้งคู่ดูเหมือนจะมีข้อบกพร่องตรงที่... หากเกิดข้อผิดพลาดในการซิงค์ไฟล์ nextcloud ทั่วไป kswapd0 จะพุ่งไปที่ 100% ของ CPU และ swapfile บนเซิร์ฟเวอร์ Debian 10.5 เต็มแล้ว (clamscan ยังเพิ่มขึ้น 45% ถึง 100% ในช่วงที่ kswapd0 ไต่ระดับเป็น 100% ของ CPU) ไคลเอนต์การซิงค์อื่น ๆ ของฉันไม่ทำให้เกิดปัญหานี้ (มือถือ อูบุนตูเนทีฟ "บัญชีออนไลน์")
เอาต์พุตคำสั่งด้านบน
ด้านบน - 16:08:59 อัพ 22 นาที ผู้ใช้ 2 คน โหลดเฉลี่ย: 89.42, 84.04, 55.66
งาน: ทั้งหมด 378, 12 วิ่ง, 359 นอน, 0 หยุด, 7 ซอมบี้
%Cpu(s): 3.4 us, 57.0 sy, 0.0 ni, 0.1 id, 39.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : รวม 3946.8, ฟรี 90.2, ใช้ไป 3766.4, บัฟ/แคช 90.1
MiB Swap: รวม 6144.0, ฟรี 0.0, ใช้ไป 6144.0 4.9 ประโยชน์ Mem
ผู้ใช้ PID PR NI VIRT RES SHR S %CPU %MEM TIME+ คำสั่ง
36 ราก 30 10 0 0 0 R 98.3 0.0 12:43.68 kswapd0
1691 mysql 20 0 1739540 2376 0 วินาที 3.9 0.1 0:34.59 mysqld
1300 ราก 10 -10 116752 3400 0 D 3.3 0.1 0:41.96 AliYunDun
1544 ราก 20 0 806108 640 0 D 2.4 0.0 0:09.45 บริการ aliyun
161 ราก 20 0 4556 1904 1844 S 0.9 0.0 0:10.60 พลีมัธ
2746 git 20 0 1374728 6020 0 S 0.7 0.1 0:07.23 gtea
1114 ราก 20 0 24312 284 0 วินาที 0.5 0.0 0:03.74 AliYunDunUpdate
5805 web2 20 0 292472 215456 920 D 0.4 5.3 0:05.43 หอย
155 ราก 0 -20 0 0 0 I 0.3 0.0 0:07.11 kworker/0:1H-kbl+
232 รูท 20 0 70888 284 88 D 0.3 0.0 0:03.74 systemd-journal
936 เมมแคช 20 0 408168 0 0 S 0.3 0.0 0:02.19 เมมแคช
3492 ราก 20 0 11380 756 556 R 0.3 0.0 0:03.28 ด้านบน
1 รูท 20 0 170192 2972 0 D 0.3 0.1 0:11.03 systemd
1041 redis 20 0 54244 428 0 D 0.3 0.0 0:03.28 redis-เซิร์ฟเวอร์
4029 www-ข้อมูล 20 0 339376 2436 16 D 0.3 0.1 0:00.85 /usr/sbin/apach
ฉันได้ลองใช้ nice และ cpulimit เพื่อป้องกันไม่ให้ kswapd0 เข้าถึง 100% และใช้หน่วยความจำ swap จนหมด.. แต่ดูเหมือนว่า kswapd0 จะทำงานผ่านทั้งสองคำสั่งไม่ว่าจะทำงานแยกกันหรือพร้อมกันและใช้ CPU และ swap 100% ทำให้ฉันไม่มีทางเลือกนอกจาก เพื่อรีบูตเซิร์ฟเวอร์เพื่อล้างแคช swap
ฉันได้ลดความรวดเร็วเป็นศูนย์แล้ว และฉันได้พยายาม:
หากต้องการแคชเพจฟรี:
เสียงสะท้อน 1 > /proc/sys/vm/drop_caches
หากต้องการปลดปล่อยวัตถุพื้นซึ่งเรียกคืนได้ (รวมถึงฟันและไอโหนด):
เสียงสะท้อน 2 > /proc/sys/vm/drop_caches
ในการทำให้วัตถุพื้นและแคชของเพจว่าง:
เสียงสะท้อน 3 > /proc/sys/vm/drop_caches
เนื่องจากฉันคิดว่าข้อผิดพลาดในการซิงค์ไฟล์ของ nextcloud จะเป็นเรื่องปกติในอนาคต อาจมีบางคนสามารถแนะนำวิธีที่ฉันสามารถลด/ป้องกันข้อผิดพลาดในการซิงค์ไฟล์อย่างง่ายไม่ให้ทำลายเซิร์ฟเวอร์ทั้งหมดของฉันได้
อัปเดต
หลังจากการทดสอบและการอ่านเพิ่มเติม .. ดูเหมือนว่า ClamAV กำลังเรียกใช้ clamscan ในทุกการอัปโหลดและอีเมลซึ่งเพิ่มการใช้งาน CPU ถึง 100% ความสัมพันธ์กับ nextcloud คือฉันมีโปรแกรมป้องกันไวรัสสำหรับไฟล์ที่เปิดใช้งาน ดังนั้นการอัปโหลดการซิงค์ไฟล์ของฉันจึงเริ่ม clamscan เช่นกัน จากนั้นโอเวอร์โหลดเซิร์ฟเวอร์
วิธีแก้ปัญหาดูเหมือนจะหยุดใช้ clamscan แต่ใช้ clamav-daemon แทน ตอนนี้ฉันกำลังค้นคว้าปัญหาอยู่ แต่ถ้าใครสามารถบอกฉันถึงวิธีเปลี่ยนจาก clamscan เป็น clamav-daemon ฉันอยากจะขอบคุณมัน.