Score:0

การจำกัด CPU & คำแนะนำ kswapd0 ที่ได้รับ

ธง cn

จากการทดสอบหลายชั่วโมง ฉันพบว่าไคลเอนต์การซิงค์เดสก์ท็อป 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 ฉันอยากจะขอบคุณมัน.

Martin avatar
kz flag
แค่คิด: ฉันจะพิจารณาปิดพื้นที่สว็อปทั้งหมดสำหรับการทดสอบของคุณ: ```swapoff -a``` - ด้วยวิธีนี้ เคอร์เนล OOM reaper จะฆ่ากระบวนการที่กินหน่วยความจำทั้งหมดก่อนที่จะมีการแลกเปลี่ยน... และ ```kswapd``` เป็นกระบวนการเคอร์เนล คุณสามารถ cpulimit / nice กระบวนการในพื้นที่ผู้ใช้เท่านั้น!
Maestro223 avatar
cn flag
ฉันแตกมัน ... เพิ่งโพสต์คำตอบ
Score:0
ธง cn

ปัญหาที่กล่าวถึงข้างต้นโดยพื้นฐานแล้วเป็น "ภาพลวงตา" ที่สร้างขึ้นโดย clamscan นี่คือวิธีที่ฉันแก้ไข:

ปัญหาข้างต้นมีสองเท่า หมายความว่า amavis กำลังเรียกใช้ clamscan แทนที่จะเป็น clamd (เป็นเวลาหลายเดือนแล้วที่ไม่มีปัญหาศูนย์ ฉันคิดว่าการอัปเดตเปลี่ยนแปลงบางอย่าง) ในขณะเดียวกันโปรแกรมป้องกันไวรัส nextcloud ถูกกำหนดค่าเริ่มต้นให้ใช้ clamscan แทน clamd ดังนั้น เมื่อใดก็ตามที่ฉันจะเชื่อมต่อไคลเอนต์ Nextcloud และเห็น "ข้อผิดพลาดในการซิงค์" มันซ่อนความจริงที่ว่า clamscan ทำให้เซิร์ฟเวอร์ทำงานหนักเกินไป เนื่องจาก clamscan สำหรับผู้ใช้ nextcloud มีน้ำหนักประมาณ 29% ของการซิงค์ CPU/ไฟล์

ฉันค้นพบปัญหา amavis/clamscan โดยปิดการใช้งานการซิงค์ nextcloud ทั้งหมดและเพียงแค่ดูคำสั่งด้านบน

สารละลาย:

1.) #dpkg-กำหนดค่าใหม่ clamav-daemon #change amavis เพื่อรัน clamd (ดูเอกสาร) <- ไม่ว่าด้วยเหตุผลใดก็ตาม การกำหนดค่านี้ไม่ถาวรและระบบเปลี่ยนกลับหลังจากรีบูต สำหรับวิธีถาวรในการวางขีดจำกัด CPU บน clamscan บนเครื่อง Debian/Ubuntu ให้เพิ่ม:
CPUAccounting=True CPUQuota=X% ถึง:
#นาโน /etc/systemd/system/clamav-daemon.service.d/extend.conf
2.) เปลี่ยนค่าเริ่มต้นของโปรแกรมป้องกันไวรัสของ nextcloud จาก หอย ถึง clamav daemon (ซ็อกเก็ต)

วิธีนี้จะแก้ปัญหาของคุณ

สิ่งที่มีประโยชน์ แต่ไม่บังคับที่นี่ สำหรับผู้ที่ใช้งานสภาพแวดล้อมโฮสติ้งที่ใช้ร่วมกันกับเดเบียน/อูบุนตู ซึ่งติดตั้ง systemd/cgroups เป็นค่าเริ่มต้น ฉันพบบทช่วยสอนที่ยอดเยี่ยมเกี่ยวกับวิธีจำกัดการใช้งาน CPU ของผู้ใช้:

https://www.webhostingtalk.com/showthread.php?t=1832382

ด้วยวิธีนี้ คุณสามารถจำกัดการใช้งาน CPU โดยรวมของผู้ใช้ เพื่อหลีกเลี่ยงไม่ให้ไคลเอนต์ทำงานผิดพลาดกับเซิร์ฟเวอร์เนื่องจากการตั้งค่าแอปพลิเคชันที่ไม่ถูกต้อง

ปัญหานี้ทำให้ฉันเสียเวลา 4 วัน.. หวังว่าคำตอบจะช่วยคนอื่นได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา