ฉันควรกังวลหรือไม่ว่าการแลกเปลี่ยนนั้นใช้กับโฮสต์ที่มีหน่วยความจำว่างเกือบ 40GB?


39

ฉันมีโฮสต์การผลิตด้านล่าง:

htop

ระบบใช้การแลกเปลี่ยน 1GB ในขณะที่รักษาพื้นที่หน่วยความจำที่ไม่ได้ใช้ฟรีไว้เกือบ 40GB ฉันควรจะกังวลเกี่ยวกับเรื่องนี้หรือมันเป็นเรื่องปกติมากที่สุด?


23
ที่จริงแล้วคุณควรกังวลเกี่ยวกับโฮสต์ที่ใช้งานจริงซึ่งมีการโหลดจริงที่สิ้นเปลืองหน่วยความจำเกือบ 40GB แน่นอนว่ามันอาจใช้ประโยชน์บางอย่างเพื่อนำหน่วยความจำนั้นไปใช้ - แอปพลิเคชันกำลังเข้าถึงดิสก์ไม่สามารถใช้หน่วยความจำนั้นเพื่อแคชข้อมูลบางส่วนลด I / Os และปรับปรุงประสิทธิภาพได้หรือไม่ เหตุใดหน่วยความจำ 40GB จึงสูญเปล่าบนเครื่องที่ใช้งานได้ นั่นคือสิ่งที่คุณควรกังวล นั่นไม่ใช่เรื่องปกติ
David Schwartz

25
free -mจริงๆมันจะมีประโยชน์มากขึ้นถ้าคุณแสดงให้เราเห็นการส่งออกของ กราฟิกอ่านยาก
user9517 รองรับ GoFundMonica

@DavidSchwartz - ฉันมีคำถามที่เกี่ยวข้องซึ่งยังคงเปิดใช้งานอยู่ serverfault.com/questions/825909/…
MrDuk

คำตอบ:


68

นี่ไม่ใช่ปัญหาและเป็นเรื่องปกติ มีการใช้รหัสจำนวนมาก (และอาจเป็นข้อมูล) น้อยมากดังนั้นระบบจะสลับออกเพื่อเพิ่มหน่วยความจำ

การสลับเป็นปัญหาส่วนใหญ่หากหน่วยความจำถูกสลับเข้าและออกอย่างต่อเนื่อง มันเป็นกิจกรรมประเภทนั้นที่ฆ่าประสิทธิภาพและแนะนำปัญหาที่อื่นในระบบ

หากคุณต้องการตรวจสอบกิจกรรมการแลกเปลี่ยนของคุณคุณสามารถทำได้ด้วยยูทิลิตี้หลายvmstatอย่าง

$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 348256  73540 274600    0    0     1     9    9    6  2  0 98  0  0
 0  0      0 348240  73544 274620    0    0     0    16   28   26  0  0 100  0  0
 0  0      0 348240  73544 274620    0    0     0     0   29   33  0  0 100  0  0
 0  0      0 348240  73544 274620    0    0     0     0   21   23  0  0 100  0  0
 0  0      0 348240  73544 274620    0    0     0     0   24   26  0  0 100  0  0
 0  0      0 348240  73544 274620    0    0     0     0   23   23  0  0 100  0  0

ไม่ต้องสนใจบรรทัดแรกเนื่องจากเป็นกิจกรรมตั้งแต่เริ่มต้นระบบ หมายเหตุsiและsoคอลัมน์ภายใต้---swap--; โดยทั่วไปควรเป็นตัวเลขที่ค่อนข้างเล็กหากไม่ใช่ 0 สำหรับเวลาส่วนใหญ่

นอกจากนี้มูลค่าการกล่าวขวัญก็คือการเปลี่ยนการป้องกันเสียก่อนนี้สามารถควบคุมได้ด้วยการตั้งค่าเคอร์เนล ไฟล์ที่/proc/sys/vm/swappinessมีตัวเลขระหว่าง 0 ถึง 100 ที่บอกเคอร์เนลว่าจะสลับหน่วยความจำอย่างจริงจังอย่างไร กำหนดให้แมวเป็นไฟล์เพื่อดูว่ามีการตั้งค่านี้ไว้ ตามค่าเริ่มต้น Linux distros ส่วนใหญ่จะตั้งค่าเป็น 60 แต่ถ้าคุณไม่ต้องการเห็นการแลกเปลี่ยนใด ๆ ก่อนที่หน่วยความจำจะหมดให้ echo 0 ลงในไฟล์ดังนี้:

echo 0 >/proc/sys/vm/swappiness

สามารถทำได้อย่างถาวรโดยการเพิ่ม

vm.swappiness = 0

/etc/sysctl.confไปยัง


14
นอกจากนี้มูลค่าการกล่าวขวัญก็คือการเปลี่ยนการป้องกันเสียก่อนนี้สามารถควบคุมได้ด้วยการตั้งค่าเคอร์เนล ไฟล์ที่ / proc / sys / vm / swappiness มีตัวเลขระหว่าง 0 ถึง 100 ที่บอกเคอร์เนลว่าจะสลับหน่วยความจำอย่างจริงจังอย่างไร กำหนดให้แมวเป็นไฟล์เพื่อดูว่ามีการตั้งค่าไว้ที่ใด โดยค่าเริ่มต้นมากที่สุด distros ลินุกซ์เริ่มต้นนี้ถึง 60 แต่ถ้าคุณไม่ต้องการที่จะเห็นการแลกเปลี่ยนใด ๆ ก่อนที่หน่วยความจำหมดสะท้อน 0 echo 0 >/proc/sys/vm/swappinessลงในไฟล์เช่นนี้: สามารถทำได้อย่างถาวรโดยการเพิ่มvm.swappiness = 0/etc/sysctl.conf
virtex

@ virtex: ฉันชอบที่จะใช้ swappiness = 1 หรืออะไรบางอย่างที่น้อยกว่า 10 บนเดสก์ท็อปของฉัน ซึ่งอาจทำได้ดีในเซิร์ฟเวอร์ส่วนใหญ่เช่นกัน กีดกันการแลกเปลี่ยนเพื่อเพิ่ม RAM อย่างมากสำหรับ pagecache ที่มากขึ้นโดยไม่ได้ห้ามทั้งหมด
Peter Cordes

1
@PeterCordes ดูแลเซิร์ฟเวอร์โดยเฉพาะผู้ที่เข้าถึงฐานข้อมูลหรือให้บริการไฟล์ สิ่งเหล่านี้อาจได้รับประโยชน์มากมายจากหน่วยความจำสำหรับแคชไฟล์
Jonas Schäfer

4
@JonasWielicki: แม้จะมีswappiness=7หรืออะไรก็ตามเพจที่ไม่ได้ใช้ในระยะยาวก็สามารถถูกสับเปลี่ยนได้ มีความแตกต่างอย่างมากระหว่างswappiness=0กับค่าอื่น ๆ แม้แต่ค่าต่ำ โดยปกติแล้วเคอร์เนลเริ่มต้นswappiness=60นั้นดีสำหรับเซิร์ฟเวอร์และใช้สำหรับการโต้ตอบกับเดสก์ท็อปเท่านั้นโดยที่ความรวดเร็วในระดับต่ำนั้นดี แต่การตั้งค่าเป็น 7 หรือสิ่งที่ไม่ควรเจ็บปวดมาก (แต่ฉันยังไม่ได้ตรวจสอบฉันไม่ใช่ผู้ดูแลระบบเซิร์ฟเวอร์)
Peter Cordes

2
@PeterCordes จนกว่าคุณจะสร้างแรงกดดันหน่วยความจำใด ๆswappinessใช้งานได้ดี ด้วยความกดดันคุณจะเห็นว่าswappiness=7การแคชไฟล์นั้นแทบจะหยุดพักเป็นระยะเวลานานในขณะที่ทำการswappiness=60แคชจำนวนมาก แต่ก็เริ่มทำการแลกเปลี่ยนภายในไม่กี่วินาที มันยังคงเป็นแคชที่ใช้เวลาในการตี แต่ในทางที่สมดุลมากขึ้น
kubanczyk

25

ลีนุกซ์จะเขียนเพจลงในดิสก์ล่วงหน้าหากไม่มีสิ่งใดที่จะทำได้ดีกว่า นั่นไม่ได้หมายความว่ามันจะขับไล่หน้าเว็บเหล่านั้นออกจากหน่วยความจำ ในกรณีที่มันจะต้องขับไล่หน้าเหล่านั้นบางครั้งในอนาคตไม่จำเป็นต้องรอให้พวกเขาเขียนลงดิสก์เพราะพวกเขาอยู่ที่นั่นแล้ว

ท้ายที่สุดเหตุผลที่คุณมีหน่วยความจำไม่เพียงพออาจเป็นเพราะเครื่องของคุณทำงานหนักอยู่แล้วคุณไม่ต้องการเพิ่มภาระในการแลกเปลี่ยน ดีกว่าที่จะทำการสลับเมื่อเครื่องไม่ทำอะไรเลย

ด้วยเหตุผลที่คล้ายกันหน่วยความจำของคุณควรเต็ม หน้าหน่วยความจำแคชของระบบไฟล์tmpfsมีหลายสิ่งหลายอย่างที่สามารถเก็บไว้ในหน่วยความจำได้ จริง ๆ คุณควรกังวลถ้าหน่วยความจำของคุณว่างเปล่า ท้ายที่สุดคุณจ่ายเงินเป็นจำนวนมากสำหรับมัน (อย่างน้อยเมื่อเทียบกับจำนวนพื้นที่ดิสก์เดียวกัน) ดังนั้นจึงควรใช้งานดีกว่า!


Jorg, หน้าที่เคอร์เนลเขียนไปยังดิสก์ preemptively ไม่ได้แลกเปลี่ยนหน้าเป็นหน้าแคชดิสก์สกปรก vm.dirty_background _... tunnables ควบคุมว่า กิจกรรมการสลับออกเริ่มต้นตามการสลับที่ปรับได้และไม่รอเวลาว่าง
ลูคัส

11

การสลับที่ใช้นั้นไม่เลว แต่กิจกรรมการสลับเป็นจำนวนมาก

  vmstat 1
  procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
  6  0 521040 114564   6688 377308    8   13   639   173    0 1100  5  4 90  0
  1  0 521040 114964   6688 377448    0    0   256     0    0 1826  3  4 94  0
  0  0 521040 115956   6688 377448    0    0     0     0    0 1182  7  3 90  0
  0  0 521036 115992   6688 377448    4    0    16     0    0 1154 10  2 88  0
  3  0 521036 114628   6696 377640    0    0   928   224    0 1503 15 17 67  1

การแลกเปลี่ยนคอลัมน์นั้นไม่มีปัญหาเลย ค่าที่ไม่ใช่ศูนย์ในคอลัมน์siและเพื่อให้เป็นอันตรายต่อประสิทธิภาพของเซิร์ฟเวอร์ คนที่มี RAM เป็นพิเศษ

เป็นการดีที่สุดที่จะปิดการใช้งาน swapinness บนเครื่องที่มี ram หลาย GB:

sysctl -w vm.swappiness=0

สิ่งนี้จะไม่ปิดใช้งานการสลับ มันจะสั่งให้ Linux ใช้การแลกเปลี่ยนเป็นตัวเลือกสุดท้ายเท่านั้น นี่จะเป็นการสูญเสียโปรแกรมบางโปรแกรมที่ไม่จำเป็นต้องอยู่ใน RAM ... แต่ควรสลับไปที่คิวการเข้าถึงดิสก์ของคุณ

แก้ไข 1: เหตุใดค่าเริ่มต้นของการทำ swappiness จึงไม่เหมาะสม

เราต้องจำได้เมื่อสองทศวรรษก่อน 486 ตัวใหญ่มี RAM เพียง 32Mb อัลกอริธึม Swap ได้รับการพัฒนาเมื่อ RAM ทั้งหมดสามารถเคลื่อนย้ายไปยังดิสก์ได้ภายในเสี้ยววินาที ถึงแม้จะมีดิสก์ที่ช้าลงของเวลานั้น นั่นคือเหตุผลที่นโยบายการแลกเปลี่ยนเริ่มต้นนั้นก้าวร้าว แรมเป็นคอขวดในสมัยนั้น ตั้งแต่นั้นมาขนาด RAM เพิ่มขึ้นมากกว่า 10,000 เท่าและความเร็วดิสก์น้อยกว่า 10 เท่า สิ่งนี้เปลี่ยนคอขวดเป็นแบนด์วิดท์ของดิสก์

แก้ไข 2: เหตุใด si จึงเป็นกิจกรรมที่ร้ายแรงสำหรับเซิร์ฟเวอร์

กิจกรรมSiและอื่นๆ บนเครื่องที่มี RAM จำนวนมากนั้นร้ายแรงเพราะหมายความว่าระบบกำลังต่อสู้ด้วยตัวเองสำหรับ RAM สิ่งที่เกิดขึ้นคือดิสก์แม้กระทั่งพื้นที่เก็บข้อมูลขนาดใหญ่ก็ช้าเกินไปเมื่อเทียบกับแรม Aggressive swap จะสนับสนุนแคชของเคอร์เนลดิสก์มากกว่าข้อมูลแอปพลิเคชันและเป็นแหล่งการต่อสู้ทั่วไปสำหรับ RAM ตั้งแต่ระบบปฏิบัติการจะต้องดิสก์แคชฟรีทุกsiเวลาที่จะมีชีวิตอยู่ของแคชพิเศษที่แลกเปลี่ยนให้อยู่ในระดับต่ำเกินไปที่จะเป็นประโยชน์นะ ผลลัพธ์คือคุณกำลังรับแบนด์วิดท์ของดิสก์เพื่อเก็บแคชที่อาจจะไม่ถูกใช้งานและหยุดโปรแกรมของคุณชั่วคราวเพื่อรอหน้าsi ความหมายที่ใช้ทรัพยากรจำนวนมากที่มีประโยชน์น้อยมากหรือไม่มีประโยชน์กับแอปพลิเคชัน

หมายเหตุชื่อเรื่องของการตอบสนอง "กิจกรรมการแลกเปลี่ยนจำนวนมากบนเซิร์ฟเวอร์ที่มี RAM มากมาย" สิ่งนี้ไม่ได้ใช้กับเครื่องที่มีกิจกรรมเป็นครั้งคราวและอื่น ๆ สิ่งนี้อาจใช้ไม่ได้ในอนาคตหากอัลกอริทึมการแลกเปลี่ยนอย่างชาญฉลาดได้รับการพัฒนาในระบบปฏิบัติการ

แก้ไข 3: หน้า "เย็น"

ผู้คนโรแมนติกกับอัลกอริทึมการแลกเปลี่ยน บางคนบอกว่า "ใช้หน้าเพจของ RAM น้อยลง" แต่นี่ไม่ใช่สิ่งที่เคอร์เนลทำเลย สิ่งที่ยากต่อการเข้าใจเกี่ยวกับการแลกเปลี่ยนคือเคอร์เนลไม่ทราบว่า "หน้าหนาว" คืออะไร เคอร์เนลไม่มีเมตริกที่ดีในการพิจารณาว่าจะใช้หน้าเว็บหรือมีแนวโน้มที่จะใช้ในอนาคตอันใกล้ เพื่อหลีกเลี่ยงการที่เคอร์เนลวางหน้าในการแลกเปลี่ยนมากขึ้นหรือน้อยลงแบบสุ่มและหน้าเว็บที่ไม่จำเป็นต้องอยู่ที่นั่น ปัญหาของอัลกอริทึมนั้นคือเพจจำเป็นต้องไปที่ swap เพื่อทราบว่าจำเป็นต้องมีแอปพลิเคชันหรือไม่ และนี่หมายความว่าหน้า "ร้อนแรง" จำนวนมากจะเข้าสู่การแลกเปลี่ยน ปัญหาของดิสก์นั้นช้าเกินไปเมื่อเทียบกับแรม

ฉันสร้างมาตรฐานของตัวเองซึ่งเป็นสถานการณ์จริงที่พบได้ทั่วไปในหลาย ๆ แอปพลิเคชั่นที่มีปริมาณที่เหมาะสม จากการทดสอบของฉันฉันไม่เห็นประโยชน์ของปริมาณงานหรือความหน่วงเมื่อใช้งาน swaps ไกลจากมัน. เมื่อเริ่มทำการสลับจะทำให้ทั้งปริมาณงานและเวลาหน่วงช้าลงอย่างน้อยก็ลำดับความสำคัญ

ฉันไปอีกเล็กน้อยเกี่ยวกับเรื่องนี้: ฉันเข้าใจว่าการสลับไม่ใช่เพื่อการประมวลผล สัญญาแลกเปลี่ยนมีไว้สำหรับกรณีฉุกเฉินเท่านั้น ช่วงเวลาเหล่านั้นเมื่อแอปพลิเคชันทำงานมากเกินไปในเวลาเดียวกันและคุณจะได้รับหน่วยความจำที่ขัดขวาง หากไม่มีการสลับจะทำให้เกิดข้อผิดพลาดออกจำ ฉันพิจารณาการใช้งาน swap เป็นความล้มเหลวของทีมพัฒนาและทีมผลิต นี่เป็นเพียงความคิดเห็นที่เกินกว่าที่เราจะพูดถึง แต่นี่คือสิ่งที่ฉันคิด แน่นอนว่าแอปพลิเคชันของฉันมีการจัดการหน่วยความจำที่ยอดเยี่ยมด้วยตัวเอง


9
"ดีที่สุดในการปิดการใช้งาน swapinness" ดีที่สุดทำไม (ดีที่สุดสำหรับวัตถุประสงค์อะไร?) ค่าเริ่มต้นอาจไม่เหมาะสมสำหรับการใช้งานทั้งหมด แต่ฉันยังต้องการเหตุผลในการเปลี่ยนแปลง
jpaugh

3
เป็นวิธีการที่siมากขึ้นร้ายแรงไปยังเซิร์ฟเวอร์ของคุณมากกว่าbi? ทั้งสองหมายความว่าบางโปรแกรมกำลังรอให้ 4096 ไบต์อ่านจากดิสก์ไปยังหน่วยความจำ biจากไฟล์ใด ๆ และsiจากหมวดหมู่ที่แคบ ๆ ที่เฉพาะเจาะจงของไฟล์ ( แต่ไบต์ของพวกเขาย้ายเพียงเป็นไปอย่างรวดเร็วผ่านตรงเส้นทางเดียวกัน)
kubanczyk

2
486 ที่มี RAM ขนาด 128MB นั้นหายากมากและจะถือว่าเป็นเมนเฟรมหรือซูเปอร์คอมพิวเตอร์ดังนั้น CPU จะไม่น่าเป็น 486 486 ตัวเก่าของฉันมี RAM ขนาด 4MB และฉันก็อิจฉาเครื่องของเพื่อนด้วย RAM ขนาด 16MB (เซิร์ฟเวอร์ขนาดใหญ่ มี RAM 16 ถึง 32 MB) กรอไปข้างหน้าสู่ Pentium และเราเริ่มเห็น 8 ถึง 16 MB ตามปกติ เมื่อ Pentium3 ปรากฏตัวครั้งแรก (เมื่อ CPU เริ่มต้นโดยปกติเกิน 1GHz) 32MB เป็นปกติและเว็บเซิร์ฟเวอร์มักจะมี 64 ถึง 128MB
slebetman

swappiness=0ดูเหมือนว่าไม่เหมาะสมโดยสิ้นเชิงสำหรับเซิร์ฟเวอร์ คุณอาจพิจารณาถึงระบบเดสก์ท็อปแบบอินเทอร์แอคทีฟ (แต่ถึงกระนั้นก็swappiness=1เป็นทางเลือกที่ดีกว่าในการเปลี่ยนหน้าเว็บที่หนาวเย็นที่สุด) ดูความคิดเห็นเกี่ยวกับคำตอบอื่น swappiness=7หรือบางสิ่งบางอย่างจะลดกิจกรรมการแลกเปลี่ยนอย่างมากโดยไม่ต้องปักหมุดหน้าหนาวลงใน RAM จนกว่าจะถึง OOM และคุ้มค่าที่จะพิจารณาหากคุณคิดว่า60เซิร์ฟเวอร์ของคุณมีความเร็วเกินกว่าที่กำหนดไว้
Peter Cordes

1
@kubanczyk: ผมคิดว่าจะเลวร้ายยิ่งกว่าsi biซอฟต์แวร์เซิร์ฟเวอร์ส่วนใหญ่ได้รับการออกแบบตามสมมติฐานที่ว่า I / O จากดิสก์อาจช้าและใช้ threads, async I / O หรือเทคนิคอื่น ๆ เพื่อตอบสนองโดยทั่วไปในขณะที่รอ I / O ความผิดพลาดของหน้าอาจเกิดขึ้นได้ทุกที่ ในกรณีที่เลวร้ายที่สุดความผิดพลาดของหน้าช้าอาจเกิดขึ้นได้หลังจากล็อคล็อคการปิดกั้นเธรดอื่นทั้งหมดจากการเข้าสู่ส่วนที่สำคัญเป็นเวลา ~ 10ms (โดยสลับกับที่เก็บข้อมูลช้าๆในการหมุน) ซึ่งอาจเป็นไปได้หากส่วนที่สำคัญคัดลอกข้อมูลจากโครงสร้างข้อมูลที่ใช้ร่วมกันไปยังหน้าเว็บที่อาจเป็นหวัด
Peter Cordes

8

นี่ไม่ใช่คำตอบสำหรับคำถามของคุณ แต่เป็นเพียงข้อมูลเพิ่มเติมที่จะช่วยคุณตัดสินใจอย่างมีข้อมูล

หากคุณต้องการทราบว่ากระบวนการใดที่ใช้การแลกเปลี่ยนเป็นพิเศษนี่คือเชลล์สคริปต์เล็กน้อย:

#!/bin/bash

set -o posix
set -u

OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"` ; do
  PID=`echo $DIR | cut -d / -f 3`
  PROGNAME=`ps -p $PID -o comm --no-headers`

  SUM=0
  for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'` ; do
    let SUM=$SUM+$SWAP
  done
  echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"

  let OVERALL=$OVERALL+$SUM
done
echo "Overall swap used: $OVERALL"

ฉันควรเพิ่ม tmpfs ที่จะสลับกันด้วย นี่เป็นเรื่องธรรมดามากขึ้นในระบบ linux ที่ทันสมัยโดยใช้ systemd ที่สร้างการทับซ้อนของ user-space / tmp โดยใช้ tmpfs


สคริปต์ที่ดี ดู smem ด้วย
user9517 รองรับ GoFundMonica

ฉันคิดว่าคุณสามารถเขียนที่ได้อย่างมีประสิทธิภาพมากขึ้น ( ไกลน้อยกระบวนการคดเคี้ยว) awk '/Swap/ {sw += $2} FNR==1 { /*first line of a new file */ find the command somehow, maybe still fork/exec ps;} END { print totals }' /proc/[0-9]*/smapsด้วย ที่รันการตัดและ ps สำหรับทุกกระบวนการและ grep + awk หลายครั้งสำหรับทุกกระบวนการในระบบ
Peter Cordes

0

ฉันสังเกตว่าการจำลองแบบของ Cluster MySQL ทำงานช้าลงหรือล้มเหลวเมื่อตัวแทนทำการแลกเปลี่ยนอย่างหนัก บางทีแอปพลิเคชั่นบางตัวอาจไม่สนใจหรืออาจได้รับประโยชน์จากการสลับบางอย่าง แต่ฐานข้อมูลดูเหมือนจะมีปัญหา อย่างไรก็ตามการสนทนาจำนวนมากที่ฉันเคยเห็นในฟอรัมพูดคุยแลกเปลี่ยนการแยกความแตกต่างจากการอภิปรายภาระงานเฉพาะ

ในโลก DBA ฉันทามติดูเหมือนว่า "มันเป็นเรื่องสามัญสำนึกที่ว่าเมื่อคุณใช้ MySQL (หรือ DBMS อื่น ๆ ) คุณไม่ต้องการเห็น I / O ใด ๆ ในพื้นที่สว็อปของคุณปรับขนาดแคช (โดยใช้ innodb_buffer_pool_size ในกรณีของ MySQL) เป็นวิธีปฏิบัติมาตรฐานเพื่อให้แน่ใจว่ามีหน่วยความจำว่างเพียงพอจึงไม่จำเป็นต้องมีการแลกเปลี่ยน

แต่ถ้าคุณทำผิดพลาดหรือผิดพลาดและการแลกเปลี่ยนเกิดขึ้น มีผลกระทบต่อประสิทธิภาพการทำงานจริงหรือไม่ นี่คือสิ่งที่ฉันกำหนดไว้เพื่อตรวจสอบ "

ฉันหวังว่าผู้อ่านจะได้พบกับลิงค์ต่อไปนี้เกี่ยวกับ

https://www.percona.com/blog/2017/01/13/impact-of-swapping-on-mysql-performance/

https://www.percona.com/blog/2010/01/18/why-swapping-is-bad-for-mysql-performance/


1
ยินดีต้อนรับสู่ Server Fault! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
เฟรดเดอริกนีลเส็น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.