เราแค่ทำไม่ได้เลย เคย เราจะพูดแบบนี้ซ้ำแล้วซ้ำอีก แต่
การแคช! = ประสิทธิภาพ
ไซต์ของคุณต้องรวดเร็วโดยไม่ต้องเพิ่ม FPC (หรือวานิชสำหรับความจริงนั้น) จะมีบางครั้งที่เนื้อหาไม่ได้ถูกเตรียมไว้ล่วงหน้า (สถานการณ์ของคุณด้านบน)
ในร้านค้าที่ไม่มีการโหลดเวลาโหลดหน้าเว็บด้วย FPC ไม่ควรจะน่าประทับใจไปกว่าการที่ไม่ใช่ FPC วีโอไอพีมีความสามารถในการ< 400ms
โหลดหน้าในแคชมาตรฐานได้อย่างมีความสุข(ในหมวดหมู่ / ผลิตภัณฑ์ / หน้าการค้นหา) FPC จะนำสิ่งนั้นลงไป< 80ms
- แต่มาพร้อมกับคำเตือน
- ข้อมูลหุ้น / ราคาล้าสมัยจนกว่าการตรวจสอบความถูกต้องหรือหมดอายุของ TTL
รายการใหม่ / การค้นหาที่เกี่ยวข้องเพิ่มเติมล้าสมัยจนกว่าการตรวจสอบความถูกต้องหรือหมดอายุ TTL
เป็นต้น
เหตุใดการพึ่งพา FPC (หรือวานิช) จึงเป็นความคิดที่ไม่ดี
หากคุณต้องการตรวจสอบให้แน่ใจว่าแคชนั้นได้รับการทำสีด้วยตัวเองอย่างต่อเนื่องอาจมีสาเหตุบางประการ
- คุณไม่มีฝีเท้าตามธรรมชาติเพียงพอที่จะเก็บแคชไว้ในพื้น(ดูที่ 'FPC มีประโยชน์ที่ไหน')
- เว็บไซต์ของคุณช้าเกินไปหากไม่มีพวกเขา
คุณไม่สามารถแคชทุกอย่าง
หากคุณใช้ร้านค้าที่มีเพียง 5 หมวดหมู่คุณสามารถกรองแอททริบิวต์ที่กรองได้ 2 ระดับ 5 ระดับตัวเลือกแอททริบิว 5 รายการแต่ละผลิตภัณฑ์และ 1,000 รายการ; ที่มีเป็นจำนวนมากรวมกันได้
25 ตัวเลือกให้เลือกโดยเลือกหนึ่งครั้งถึง 5 ครั้งติดต่อกัน - ฉันไม่มีสถิติแต่ฉันรู้ว่านั่นคือ ... (สมมติว่าจำนวนตัวเลือกแอตทริบิวต์ไม่ลดลงอย่างสมบูรณ์)
25 possible URLs on the first selection
20 possible URLs on the second selection
15 possible URLs on the third selection
10 possible URLs on the fourth selection
5 possible URLs on the fifth selection
5^5 = 3,125 possible combinations (for top level categories)
5^4 = 625 possible combinations (for 2nd level categories)
ตกลงข้างต้นไม่ได้เป็นสถานการณ์ที่น่าจะเป็นอย่างที่ฉันคิดว่าภายใน 3 คลิก - จำนวนของผลิตภัณฑ์ที่มีอยู่จะลดลงอย่างเพียงพอสำหรับลูกค้าในการค้นหาผลิตภัณฑ์ของพวกเขา ดังนั้นแม้ว่ามันจะเป็น ...
25 possible URLs on the first selection
10 possible URLs on the second selection
3 possible URLs on the third selection
5^3 = 125 possible URL combinations
จากนั้นคูณด้วย 5 หมวดหมู่นั่นคือ 625 URL ในขั้นตอนนี้เรากำลังพูดถึงแคตตาล็อกขนาดเล็กและไม่สนใจ URL ผลิตภัณฑ์ทั้งหมดอย่างสมบูรณ์
นอกจากนี้เรายังไม่แยกตัวประกอบว่าหากคุณมีหมวดหมู่ที่ซ้อนกันด้วยis_anchor
บนจะมีการเพิ่มขึ้นแบบทวีคูณ
ดังนั้นในการรวบรวมข้อมูลปริมาณของหน้าเว็บ - คุณต้องหวังว่าเวลาในการโหลดหน้าเว็บของคุณนั้นดีและเริ่มต้นน้อยดังนั้นมันจึงเป็นกระบวนการที่มีน้ำหนักเบาอย่างรวดเร็ว มีเวลาเพียงพอที่จะทำให้เสร็จก่อนที่ TTL จะหมดอายุ
หากหน้าเว็บของคุณมีเวลาในการโหลดหน้าเว็บ 0.4 วินาทีและคุณมีซีพียู 8 คอร์ - จากนั้น ...
625 * 0.4 = 250 / 8 = 31 seconds
0.5 นาทีไม่เลว - แต่ลองจินตนาการว่าคุณมีเวลาในการโหลดหน้าเว็บ 2 วินาที
625 * 2 = 1250 / 8 = 156 seconds
แต่ถ้าคุณเอาสถานการณ์ที่เป็นไปได้สูงสุด
3,750 * 2 = 7,500 / 8 = 937 seconds ~ 15 minutes
นั่นคือเซิร์ฟเวอร์ที่ใช้งานจริงของคุณภายใต้โหลด CPU 100% เป็นเวลา 15 นาที คุณจะลดความเร็วการรวบรวมข้อมูลให้เป็นสัดส่วนกับ TTL ที่คุณต้องการ
ดังนั้นหากคุณต้องการให้เนื้อหามี 3600s TTL การรวบรวมข้อมูลอาจช้าลง 4 เท่านั่นคือ CPU เพียง 25% เท่านั้นที่ทุ่มเทให้กับการรวบรวมข้อมูล นั่นเป็นทรัพยากรจำนวนมากเพียงเพื่อรักษาเนื้อหาหมวดหมู่ไว้ให้พร้อม - เรายังไม่ได้รวมอยู่ในผลิตภัณฑ์คำค้นหาหรือมุมมองร้านค้าเพิ่มเติมในขั้นตอนนี้
ในความเป็นจริงเพียงแค่ดูขนาดของชุดค่าผสมที่แท้จริงในcatalog_url_rewrites
ตาราง (ซึ่งไม่ได้รวมอยู่ในพารามิเตอร์จากการนำทางแบบเลเยอร์) จะให้ความคิดเกี่ยวกับจำนวน URL ที่คุณสามารถจบการรวบรวมข้อมูล
ทุกร้านจะแตกต่างกันอย่างแน่นอน แต่สิ่งที่ฉันพยายามจะตีกลับบ้านก็คือการรวบรวมข้อมูลเว็บไซต์เพื่อ FPC หลักไม่ได้ใช้งานได้จริง เพียงให้แน่ใจว่าร้านค้าของคุณเป็นไปอย่างรวดเร็วจะเริ่มต้นด้วย
FPC มีประโยชน์ที่ไหน
ที่ซึ่งผลประโยชน์ของ FPC เข้ามาเล่นอยู่ในร้านค้าที่มีการโหลดหนาแน่น - ซึ่งคุณมีปริมาณการใช้งานสูงและแท้จริงแคชนั้นเป็นธรรมชาติ
จากนั้น FPC ก็เข้าสู่การเล่นโดยการลดค่าโสหุ้ยโครงสร้างพื้นฐานสำหรับเนื้อหาที่ต้องการโดยทั่วไป - ลดการเรียกซ้ำไปที่แบ็กเอนด์ Magento
ดังนั้นเราจึงพบว่า FPC นั้นยอดเยี่ยมในการปรับใช้เมื่อคุณมีระดับการรับส่งข้อมูลสูงมากไม่ใช่เพื่อลดเวลาในการโหลดหน้าเว็บ แต่เพื่อลดการใช้ทรัพยากร
ใครสนใจฉันยังคงต้องการรวบรวมข้อมูล
ถ้าอย่างนั้นคุณมีสองทางเลือก
- รวบรวมข้อมูลจากเทมเพลต (เช่น sitemap)
- แยกลิงก์ทีละหน้าและรวบรวมข้อมูลแต่ละอัน
และมีสาธารณูปโภคหลายอย่างให้ทำทั้งสองอย่างนี่คือสิ่งที่ฉันรู้
- ผู้วิเศษ-perftest
- HTTrack
- นัทช์
- Sphider
- Crawler4j
ใช้ Mage-Perftest
คุณสามารถรวบรวมข้อมูลร้านค้าของคุณด้วย Mage-Perftest ได้อย่างง่ายดายดาวน์โหลดได้ครั้งแรก
wget http://sys.sonassi.com/mage-perftest (64bit) OR
wget http://sys.sonassi.com/mage-perftest-i386 (32bit)
chmod +x http://sys.sonassi.com/mage-perftest*
จากนั้นกำหนดกระบวนการรวบรวมข้อมูลโดยใช้แผนผังเว็บไซต์วีโอไอพี (คุณสามารถปรับแต่งสิ่งนี้ได้โดยสร้างแผนผังไซต์ของ URL ใด ๆ โดยที่ URL ถูกห่อด้วย<loc></loc>
แท็ก) คำสั่งต่อไปนี้จะอ่าน URL ทั้งหมดจากไฟล์ sitemap จากนั้นรวบรวมข้อมูล (PHP เท่านั้น) URL ในช่วงเวลา 1440 นาที (1 วัน) หากเซิร์ฟเวอร์เกิน 20% CPU หรือโหลดเฉลี่ย 2 - การรวบรวมข้อมูลจะหยุดชั่วคราว
./mage-perftest -u www.example.com -s www.example.com/sitemap.xml -r auto -b -d 1440 -z -a 20 -l 2
หากคุณมี 1,000 URL จะถูกรวบรวมข้อมูลเกิน 1 วันซึ่งจะมีค่าประมาณ 1 คำขอทุก ๆ 86 วินาที ~ เป้าหมาย 0.011 RPS