Back to Question Center
0

Semalt ภาพเว็บไซต์ไปยังเซิร์ฟเวอร์ระยะไกล vs การย้ายฐานข้อมูลไปยังเซิร์ฟเวอร์ระยะไกล

1 answers:

ฉันมีเว็บไซต์ wordpress ที่มีขนาดใหญ่เกินไปสำหรับเซิร์ฟเวอร์เครื่องเดียว. ฉันจำเป็นต้องตัดสินใจว่าควรโฮสต์ฐานข้อมูลภายนอก i. อี. ซื้อเซิร์ฟเวอร์อื่นสำหรับฐานข้อมูลหรือถ้าฉันควรโฮสต์ภาพบน CDN - royal blue and silver fascinator.

Semalt DB ภายนอกเป็นทางออกที่รวดเร็วและง่ายที่สุด. จะลดการใช้ I / O และ RAM ซึ่งจะช่วยได้มาก. (ฉันคิดเกี่ยวกับการใช้ถัง AWS S3) จะหมายถึงการร้องขอมากน้อยไปยังเซิร์ฟเวอร์หลักและฉันเคยชินต้องแยกเว็บไซต์และ DB. นี่เป็นขั้นตอนที่ซับซ้อนมากเนื่องจากมีเครื่องมืออื่น ๆ ที่ใช้ในชุมชนในไซต์ที่อนุญาตให้ผู้อื่นอัปโหลดภาพ.

ดูเหมือนว่าการย้ายภาพไปยัง S3 จะให้ผลประโยชน์ที่ดีที่สุดเนื่องจากมีภาพมากกว่า 15 ภาพในหน้าเว็บส่วนใหญ่เมื่อคุณรายงาน "โพสต์ล่าสุด" และข้อมูลในแถบด้านข้าง. Semalt เนื่องจากการเปิดใช้งานเบราว์เซอร์แคชอาจไม่สำคัญเท่าที่ควรในเบื้องต้น. เนื่องจากลักษณะการทำงานแบบไดนามิกที่ผู้ใช้ดำเนินการในไซต์นี้จึงไม่สามารถสืบค้นข้อมูลในแบบสอบถามของ DB เนื่องจากส่วนใหญ่มีการเข้าร่วมกับตารางผู้ใช้โดยที่ ID = session value. สำหรับนี้ผมคิดว่า DB อาจได้รับประโยชน์ที่ดีที่สุด. ข้อเสียเปรียบของหลักสูตรคือการย้ายฐานข้อมูลออกจาก localhost หมายความว่าฉันต้องทำคำขอผ่านอินเทอร์เน็ต. ขณะนี้ยังไม่สามารถจัดเก็บ DB ในกลุ่มหรือเครือข่ายภายในใดก็ได้. DB จะอยู่บนเซิร์ฟเวอร์ระยะไกลและฉันจะใช้ IP สาธารณะเพื่อสื่อสาร.

โดยทั่วไปสำหรับเว็บไซต์เฉลี่ยสิ่งที่จะเป็นประโยชน์อย่างยิ่งหากคุณสามารถเลือก 1. Semalt ภาพทั้งหมดไปยังสถานที่ห่างไกลและให้บริการได้ผ่านโดเมนย่อย e. ก.ภาพ. mysite. com หรือฉันควรย้ายฐานข้อมูลไปยังเซิร์ฟเวอร์ทุ่มเทของตัวเอง?

ขณะนี้ฉันมีเซิร์ฟเวอร์แบบสแตนด์อโลนที่มีไดรฟ์ 2 TB, Xeon 8 หลัก @ 2. 7 กิกะไบต์และ 16GB ram. ฉันมีแบนด์วิธไม่ จำกัด ในการเชื่อมต่อ 100MB. ค่าใช้จ่ายในการอัปเกรดเป็นสิ่งที่ใหญ่กว่าคือเงินที่บ้าฉันสามารถเพิ่มเติมหลายเซิร์ฟเวอร์เดียวกันฉันมีตอนนี้ในราคาเดียวกัน. ปรากฏว่า apache และ mysql กำลัง hogging มากที่สุดของ CPU แต่ apache ให้บริการภาพทั้งหมดดังนั้นนี่คือที่ปัญหาของฉันอยู่.

February 6, 2018

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

ฉันรักเครื่องมือ AWS จริงๆ. พวกเขาเหมาะสำหรับเงินที่คุณจ่ายและพวกเขาจ่ายเฉพาะสิ่งที่คุณใช้เท่านั้น. นอกจากนี้สำหรับการเชื่อมต่อเมื่อดาวน์โหลดและอัปโหลดการสำรองข้อมูลจะมีประสิทธิภาพที่ยอดเยี่ยม. อย่างไรก็ตามสำหรับสองสามครั้งที่ฉันได้เห็นถัง S3 ถูกใช้เป็น CDN พวกเขาไม่ได้ดูเหมือนจะทำเช่นเดียวกับอื่น ๆ CDN ดังนั้นคุณอาจต้องการที่จะทดสอบตัวเลือกที่แตกต่างกัน CDN. หากคุณมีภาพที่ผู้ใช้อัปโหลดไว้จำนวนมากจำเป็นต้องมีการรวมปลั๊กอินไว้ด้วยกัน.

สำหรับฐานข้อมูลฉันไม่แนะนำให้มีเซิร์ฟเวอร์ฐานข้อมูลแยกต่างหากผ่านทางอินเทอร์เน็ตหากมีการเชื่อมต่อช้า. การเชื่อมต่อฐานข้อมูลของคุณช้ามากทรัพยากรที่คุณจะผูกไว้และหน้าเว็บของคุณจะทำงานช้าลง. แต่นั่นไม่ได้หมายความว่าคุณไม่มีตัวเลือกใด ๆ. ถ้าคุณไม่สามารถเพิ่มเซิร์ฟเวอร์อื่นได้ฉันขอแนะนำให้เพิ่มไดรฟ์ SSD. คุณไม่ได้ระบุว่าไดรฟ์ของคุณเป็น SSD หรือไม่ แต่ดูเหมือนจะไม่เป็นเช่นนั้น. MySQL สามารถมาก I / O เข้มข้นและนั่นคือสิ่งที่ SSDs ดีก่อน. คุณสามารถติดตั้งไดรฟ์ SSD แยกต่างหากที่คุณใช้เฉพาะสำหรับ MySQL เพื่อเพิ่มประสิทธิภาพของคุณ. ฉันได้ทำการเปลี่ยนแปลงนี้สำหรับลูกค้าจำนวนมากเพื่อดูว่ามีผลกระทบใหญ่.

นอกจากนี้ปรับการติดตั้ง MySQL ของคุณ. เป็นขั้นตอนที่ถูกลืมโดยทั่วไปซึ่งสามารถให้ผลดียิ่งขึ้น. คุณสามารถรับเครื่องมือได้ที่นี่:

https: // raw. GitHub. co.th / สำคัญ / MySQLTuner-Perl / Master / mysqltuner. pl

นี่เป็นบทความที่อาจช่วยในการใช้งาน:

https: // www. Percona. com / blog / 2014/01/28/10-mysql-performance-tuning-settings-หลังการติดตั้ง /

มันไม่เคยเจ็บเพื่อตรวจสอบระเบียนชั่วคราวมากเกินไปในตารางตัวเลือก WordPress ซึ่งบางครั้งอาจช้าลง.

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

http: // www. thegeekstuff. com / 2011/03 / sar-examples /

ฉันชอบที่จะเรียกใช้ sar ด้วยตัวเองไม่มีตัวเลือกเพื่อให้ได้ความคิดในการที่การใช้งานขนาดใหญ่ของฉันได้รับ. นี่เป็นบรรทัดส่วนบุคคลที่ฉันใช้เพื่อตรวจสอบการใช้งานสำหรับสัปดาห์:

  (sar -u; สำหรับ d ใน {1. 7}; ทำ sar -u -f / var / log / sa / sa $ (วันที่ -d "- $ d วัน" +% d) ทำ) | awk '4 เหรียญ / 20 [1-2] [0-9] / {d = $ 4} $ 9 ~ / [0-9] / {print d "" $ 0} '| เรียงลำดับ -nrk8 | เรียงลำดับ -nrk10 | awk -vt = "50"' BEGIN {n = "\ 033 [0m"; c = "\ 033 [1; 31m"; w = "\ 033 [1; 33m"} $ 10 ~ / [0-9] / {us = $ 5 + $ 7; io = $ 8; id = $ 10; if (us> (io) {ioc = n} if {ioc = n} if {ioc = w}} printf {ioc = c} else {ioc = w}} else {usc = n; if (io> % s \ t ผู้ใช้ / ระบบ:% s% 4. 2f% s \ tI / O:% s% 4. 2f% s \ tIdle:% 4. 2f \ n ", $ 1" "$ 2" "$ 3, usc, us, n, ioc, io, n, id} '| tail -10 
ฉันแบ่งการใช้ขึ้นโดย System / User และ I / O เพราะฉันพบว่าโดยทั่วไปถ้าเป็นอดีตก็แก้ปัญหาได้ดีขึ้นโดยการแก้ไขสคริปต์ PHP และถ้าเป็นภายหลังผมมักจะมองไปที่ MySQL ก่อน. ถ้าเป็นเพียงซีพียูถูกผูกไว้ฉันจะมุ่งเน้นการเพิ่มประสิทธิภาพสคริปต์ให้กับตัวเองเช่นอาจจะลบปลั๊กอินเป็นต้น. ถ้าเป็น I / O แล้วฉันอาจตรวจสอบ iotop เพื่อยืนยันผู้กระทำความผิด. ถ้ามันหมดจด RAM based (ตรวจสอบกับ sar-q ) แล้วอาจเพิ่มแรมมิฉะนั้นและ SSD สามารถช่วย. แน่นอนว่า YMMV.

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

  1. โอนย้ายฐานข้อมูลไปยังเซิร์ฟเวอร์ที่แยกต่างหาก
    โดยทำเช่นนี้คุณจะลดภาระบนเซิร์ฟเวอร์ imparted โดยบริการฐานข้อมูล. ถ้าเป็นไปได้กับผู้ให้บริการของคุณพยายามที่จะใช้แพลตฟอร์มฐานข้อมูลระบบคลาวด์เนื่องจากควรจะเป็นแบบ burstable เพื่อจัดการกับ spikes แบบฉับพลัน แต่สั้น.

  2. รูปภาพการถ่ายโอน
    ด้วยการถ่ายโอนภาพไปยังแพลตฟอร์มอื่นเช่นถัง S3 คุณจะลดจำนวนการเชื่อมต่อไปยังเซิร์ฟเวอร์ของคุณซึ่งจะช่วยลดภาระระบบโดยรวมได้เช่นกัน.

คนอื่น ๆ พูดอะไร. ค้นหาว่าทรัพยากรระบบของคุณกำลังไปที่ใด. จากนั้นแก้ไขปัญหาดังกล่าว. หากคุณต้องการงบประมาณที่ยั่งยืนคุณจะไม่สามารถสุ่มสี่สุ่มห้าทรัพยากรทั่วไปของปัญหาได้.

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

คุณอ้างอิง "localhost" ณ จุดหนึ่ง. ไม่ควรเป็นส่วนหนึ่งของบริการเว็บสาธารณะใด ๆ นี่เป็นสิ่งที่ควรเกิดขึ้นเมื่อใช้ sandbox ที่มีการเข้าสู่ระบบโดยตรงเพื่อวัตถุประสงค์ในการพัฒนา. ฉันเดาว่าคุณหมายถึงว่าการอ้างอิงไปยังภาพในปัจจุบันถือว่าทั้งหมดอยู่บนเซิร์ฟเวอร์เดียวกันหรือไม่?

สิ่งที่ควรทราบ *

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

คุณเห็นคำขอกี่ครั้งต่อวินาที? ฮาร์ดแวร์ดีมากและถ้าเป็นพื้นที่เพียงไซต์ WordPress เดียวก็ควรจะสามารถจัดการกับการเข้าชมจำนวนมากถ้าทุกอย่างถูกตั้งค่าอย่างถูกต้องก่อนที่จะคิดเกี่ยวกับการปรับออกไปยังเซิร์ฟเวอร์มากขึ้น.

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

นอกจากนี้คุณควรตรวจสอบสิ่งที่แบบสอบถาม db มีการใช้ทรัพยากรมากที่สุด.