Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

หลายวันก่อน ผมแสดงวิธีติดตั้ง Meltdown patches มกราคม 2018 สำหรับ Windows แม้ไม่มี Anti-virus ติดตั้ง Microsoft Blacklist บาง Anti-virus ที่ Non-compatible แต่ไม่ได้อธิบายว่าส่งผลต่อคนที่ไม่มี Anti-virus ด้วย คาดว่า Radical departure จาก Sheep mentality ไม่เคยได้ยิน

ตอนนี้ Patches ติดตั้งและรันแล้ว - ผมทดสอบบน Hกะบน SIX systems - มากกว่า "Tech media" ที่แค่ Repeat สิ่งที่ Microsoft บอกโดยไม่ Check จริง สิ่งต่อไปคือ Performance และ Stability Meltdown และ Spectre patches ดีต่อคุณไหม? สำคัญที่สุด: มันทำให้คอมพิวเตอร์ช้าลงไหม?

มาทำความเข้าใจบางอย่างก่อน

ก่อนเริ่ม ผมอยากให้คุณเข้าใจตำแหน่งของผมชัดเจน

First, ผมถือหุ้น Microsoft เล็กน้อย ดูเหมือนผม "ควร" สนับสนุน Company line เรื่อง Performance - Windows 7 หนักที่สุด Windows 10 น้อยกว่า - แต่ไม่ใช่เรื่องนั้น ผมไม่สนใจ Microsoft บอกอะไร Benchmark results จาก Microsoft บน Windows ไร้ความหมาย ถาม Fast food vendors ว่าอาหารของพวกเขา Healthy ไหม เราต้องการ NEUTRAL, Third-party results

เหตุผลที่ผมเชื่อ Microsoft เป็น Useful company ที่มี Future prospect ดี ไม่ใช่เพราะ Windows 10 เร็วกว่า Old releases (Hint: ไม่ใช่) ผมพูดเรื่องนี้เยอะแล้ว

Second, ผมอยาก Pull rank ผมทำงาน EXACTLY ประเภทนี้ - Performance tuning, Optimization และ Benchmarking ลงถึง Lowest level ใน CPU architecture สำหรับส่วนใหญ่ของ Career ผมมี Patents เกือบ 1 โหล เรื่อง Scheduling, Power management, Data center orchestration และ Out-of-band protocols ทั้งหมดเกี่ยวกับ Hardware platforms ค้นหา Online - ชื่อผม + Patents และดู IEEE papers

ผมทำใน Scale ใหญ่ Intense HPC environments Data center deployment น้อยกว่า 10,000 servers? Boring Memory access thing? Old game ปัญหา Meltdown และ Spectre และ Complex มากกว่านั้น เป็น Fun, Bread and butter ของผม ผมเขียนหนังสือ Problem solving ที่เป็น Sum ของ Experience และ Knowledge ทั้งหมด

Just for fun อาจจะอยากอ่านสองบทความ - Exactly how to debug และ Troubleshoot ปัญหาแบบนี้ - แตะ System calls และ Timings, Interrupts, Context switches, CPU counters Cool และ Nerdy pointers:

Linux system debugging super tutorial
Slow system? Perf to the rescue!

Benchmarks ไร้ประโยชน์

ใช่ พวกมันไร้ประโยชน์ Synthetic tests ดีสำหรับ Enterprises ไม่หมายอะไรสำหรับ Home environment setup พูดถึงเรื่องนี้ใน Browsers ทับซ้อนกันอีกครั้ง Firefox และ Chrome

Benchmarks ไร้ประโยชน์เพราะไม่ Reflect reality จาก Raw figures BMW 330d ทำ 0-100 km/h ใน 5.3 วินาที และ Breeze flat out ที่ 250 km/h แต่คุณไป Roadtrip ไป UK ที่มี Road network ยุค Steam คุณโชคดีถ้า Hit 100 km/h ไป once สิ่งที่ Matter คือ Real-life human usage

UI performance และ Responsiveness เรื่อง Complex, Subjective และ Difficult to measure ทั้งสองคนทำอย่างเดียวกัน แต่อยู่ต่างโลก ใช้ Software แตกต่าง เพิ่ม Running programs, User age, Perception of speed, Skills, Distraction, Browser addons, Flash plugin version, Active background services, Graphics drivers, Hard disk cache/fragmentation, Memory bus speed, Internet connection, Permutations ไม่มีที่สิ้นสุด Literally no two people EVER use computers the same way

พูดถึงใน LinuxCon 2014 presentation - P-Factor พยายามสร้าง Mathematical formula จาก IO metrics ประเมินอะไรที่ Perceived as slowness สิ่งน่าสนใจ: Pure CPU load (สูงถึง 500 - ทฤษฎี 500 cores) บน Single eight-core system ไม่ induce lag ใน UI ตราบใดที่ไม่มี I/O load

Benchmark (WhateverMark) จบใน 556 ms หมายถึงอะไร? Translate ได้ไหมว่า Facebook page เป่นกี่วินาทีสำหรับคนบน Wireless ใน Coffee shop พิมพ์ด้วยนิ้วมันหนึ่งนิ้ว? หรือส่งรูปแมว 4 รูปให้ยายใช้เวลานานแค่ไหน?

ความสำคัญของ Patches

โดยรวมมี Noise และ Panic มาก ทำให้ดู Scary กว่าจริง แต่ Issue ไม่ได้ Catastrophic จากมุมมอง End-user มัน VERY disruptive ต่อ Industry แต่น้อยกว่าสำหรับ Individuals

Vulnerabilities ที่เปิดเผยทั้งหมดมี Local attack vector สำคัญสำหรับ Multi-user systems รวมถึง Shared platforms, Cloud, Hosting providers น้อยกว่าสำหรับ Home users มัก Single user (ในความหมายสุภาพ)

Local attack vector หมายถึง ถ้า Internet-facing programs ของคุณ Patched แล้ว คุณควร Fine จริงๆ Browser ทุกตัวได้ Updates รอบแรก Harden against vulnerabilities ครอบคลุม 90% ของ Use cases แล้ว

ตอนนี้ หากคุณปล่อยให้ Random executables รันบน Box ของคุณ Unfettered - คุณมี Bigger problem จาก Vulnerabilities ใดๆ สองอัน ไม่มี Patches ใดๆ จะ Fix ได้

Meltdown และ Spectre vulnerabilities อยู่มา 20 ปีง่าย ตามที่อ่านเกี่ยว CPU architectures หมายถึง Issue Complex และ Difficult ใช้สองทศวรรษค้นพบ - หรือใครสักคน Abuse มันเงียบๆ มานาน และเราไม่เคยรู้ ไม่มีอะไรเปลี่ยนจากมุมนั้น

BTW หากคิดว่า Vulnerability age เอง Bad (Last big one 17 ปี) ไม่ใช่ ยิ่งเราใช้คอมพิวเตอร์มาก ยิ่งมี History มาก ดังนั้นใน 50 ปี จะมีใครหา 63-year-old vulnerability ได้ ตอนนี้เรายังไม่มี Desktop/laptop use legacy มากพอ Timeframes จึงสั้นกว่า

Actual tests

ผมติดตั้งและรันอะไรบ้าง?

  • ใน Windows: ติดตั้ง Windows patches เท่านั้น - ไม่มี Firmware updates
  • ใน Linux: ติดตั้งทุกอย่างจาก Repos - Kernel และ Firmware

ทำไมไม่ Firmware บน Windows? บางกรณีไม่มี Available แต่โดยทั่วไปสำหรับ Single-user systems ผมรู้สึกไม่จำเป็น ตามที่อธิบายข้างต้น

มาดู Results ที่ได้

Case 1: แลปท็อป 2010

HP เครื่องเก่า First-gen i5, Windows 7 SP1, Nvidia graphics, Limited user, EMET และ SuRun สำหรับ Security ไม่มี Anti-virus ใดๆ นี่คือ Important factor ในทุก Cases ของผม No real-time anti-malware ใช้ CPU cycles

ทุกอย่างทำงาน Fine หลัง Updates ไม่มี Perceived slowness ผม EXTREMELY sensitive ต่อการเปลี่ยนแปลงเล็กที่สุด ทุกเรื่อง เคย Spot 0.6-degree camber change ใน Rear suspension รถ ต้องไปปรับ Alignment ทดสอบ Full HD video ใน Browser ทำหลายอย่างพร้อมกัน Smooth as a peach ไม่เห็น Significant difference เลยเทียบก่อน Updates

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

Case 2: เดสก์ท็อป 2011

Gaming rig 2011 ยัง Capable มาก Windows 7 SP1, Admin user, EMET, 16GB RAM, i5, 5x WD Caviar Black HDDs, Nvidia GTX 960 (อัปเกรดไม่กี่ปี) ทุกอย่าง Silky smooth ทดสอบ Games หลายตัว ไม่พบ CPU/GPU utilization เพิ่มขึ้นภายใต้ Heavy load ไม่เพิ่ม Context switches ไม่ Lag Apps เปิดเร็วเหมือนเดิม ลอง HD media streaming, GIMP image manipulation, TrueCrypt containers Splendid

Case 3: แลปท็อป 2014

Lenovo IdeaPad Y50-70 Mobile device ที่ Powerful ที่สุดของผม 16GB RAM, Intel HD + Nvidia GTX 860M (เทียบเท่า Desktop GTX 580 ~10-20% น้อยกว่า GTX 960) แต่มี i7 ใหม่กว่า HT on = 8 threads vs 4 threads บน Gaming desktop รัน Windows 8.1, Admin user, EMET

ผมรู้สึกว่า FASTER กว่าก่อน Updates แต่ก็มี Nvidia drivers ล่าสุด ซึ่งอาจช่วยผลลัพธ์ เล่น ArmA 3 และ Cities Skylines ทุกอย่าง Hunky dory Cities Skylines ใช้ ~30% GPU และ 45% CPU กับ Map 100K และ Mods เยอะ = เหมือนเดิม

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

Case 4: แลปท็อป 2015

Multi-purpose test rig - Lenovo IdeaPad G50-70 8GB RAM, i3, Intel HD graphics Windows 10, Limited user, Exploit Protection หลัง Updates ทุกอย่าง Beautiful

ลอง Stream TWO 1080p videos พร้อมกัน หนึ่งใน VLC หนึ่งใน Chrome ไม่ Lag, ไม่ปัญหา Switching apps เร็ว ทุกอย่าง Works ไม่ Errors, ไม่ Complaints หากมี Degradation อยู่ใต้ Threshold ของความไวของมนุษย์และ Nerd

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

Other cases

ยังมีอีก - Desktop 2012 คล้าย Gaming rig แต่ Processor และ Graphics น้อยกว่านิดหน่อย ไม่มี Issues VivoBook 2013 Dual-boot Windows 8.1 และ Ubuntu Trusty Windows side: Admin + EMET อีกครั้ง ไม่มี Slowdowns

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

No vendor updates, though.

Bonus case: Various Linux distributions

ทดสอบครึ่งโหล Systems บน Lenovo G50, HP, Asus VivoBook (น่าสนใจที่สุด เพราะเป็น Production system) ผมไม่เคยมี Intel microcode ใน Ubuntu 14.04 บน Ultrabook ติดตั้งหลัง Upgrade kernel (with Meltdown patches)

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

คล้าย 2014 IdeaPad laptop รู้สึก FASTER หลัง Updates Really snappy Refreshingly delightful และ Trustworthy เหมือน Trusty ทุกอย่าง Fast และ True ไม่มี Errors Before และ After patches งานปกติ:

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

Fluctuation ของ System numbers ไร้ความหมาย - Actual load ขึ้น 40-90% CPU และ Metrics ตามไปตามมา ไม่ว่าการเปลี่ยนแปลงคืออะไร Not noticeable

ไม่มี Perceived slowness ใดๆ ยืนยัน Windows findings ด้วย OS และ Kernels ที่ต่างกันสิ้นเชิง

Extras: Firefox และ Chrome mitigations

ทดสอบ Firefox 57.0.4 และ Chrome 63 กับ Site isolation flag ใหม่ อีกครั้ง หากมี Differences ซ่อนอยู่จาก Human perception ทุกความหมาย ลอง Chrome 63 กับ Site process isolation:

chrome://flags/#enable-site-per-process

Meltdown และ Spectre: ผลของแพตช์ Windows ต่อประสิทธิภาพและความเสถียร

สิ่งที่ผมชอบใน Drama นี้

ผมพอใจมากกับวิธีที่ Hardware และ Software vendors จัดการ Spot on No crashes, No bugs, No performance impact Very nice

สิ่งที่ผมไม่ชอบใน Drama นี้

Passive-aggressive language ของ "Tech" media ทุกอย่าง Phrased lawyer-like ไม่มีใคร Liable Tiptoeing around problem โดย Regurgitating bullshit ไร้ประโยชน์ Waste of time และ Space หาก Purpose ของ Articles คือ Copy-paste Official statements จาก Intel หรือ Microsoft 不如不写

แต่พูดถึง Microsoft Statements ว่า "Expect some users will notice a decrease in system performance..." ไร้ประโยชน์ หมายถึงอะไร? ควรคาดหวังตายวันหนึ่ง ไม่ได้หมายถึง Issue ตอนนี้ Perception เป็น Subjective บางคนไม่ Notice ถ้าคุณปิดเครื่องของพวกเขา

การกล่าวถึง Font rendering อีกอย่าง ใน Linked article ผมแสดงว่า Debugged EXACTLY นั้น Font problem และ Tutorial Setup Meltdown patches (และ WU อ่าน Registry เฉพาะ Startup) นี่คือ Bad argument Most if not all apps Cache fonts เฉพาะ Loading time Memory operations เร็ว GPUs เร็วมาก

แต่ Wait Rendering? 有趣 So เราพูดถึง Mathematical operations, CPU processing, GPU processing? Rasterization, Anti-aliasing, Hinting, Screen resolution, Display refresh พูดถึงอะไร exactly? มี Article 不錯有数字

ผมรู้ว่า Microsoft (และบริษัทอื่นๆ) ต้อง Disclaim findings และ Err on side of caution (Pessimism) แต่ถ้าเป็นเช่นนั้น อย่าเขียนอะไร ไม่มี Value ใน Implied statements ว่า Windows 10 performs better than Windows 7 เพราะมัน Erode credibility ให้ผมอธิบายทำไม

Take a computer from 2010 - เวลานั้น Windows 7 เป็น Current Microsoft OS ถ้าคุณมี Best set of drivers สำหรับ Hardware คุณมี OS ที่ Perform at peak of its ability

ตอนนี้ Install Windows 10 บนมัน คุณจะไม่ได้ Super-magical improvements อาจจะมี Kernel function _NT_win10 เร็วกว่า _NT_win7 ในบาง Cases แต่ Claim Huge performance improvements หมายถึง: 1) Monumental kernel changes ใน Windows 10 เทียบ Windows 7 ไม่ Make sense กับ Fanatical backward compatibility ของ Microsoft และ Incremental nature of progress in software 2) Implies ว่า Windows 7 เป็น Sub-optimal system และ Microsoft kernel engineers ไม่รู้ทำ Best ของ Hardware ที่มีใน 2010 Nonsense

New hardware, YES, I AGREE ถ้าตอนนี้ Install Windows 7 บน Hardware platform ใหม่ CPU ใหม่ที่ออกแบบหลัง Windows 7 หยุด Kernel upgrades อาจเป็นว่า Older system ไม่รู้ใช้ New features ใน Hardware (Thunderbolt, USB 3.0, SSD, CPU extensions) ในกรณีนี้ Latest Windows Makes sense ผมโต้แย้งแล้วตอน Switch จาก XP ไป 7 Make OS changes match Hardware In-vivo replacements ไร้ความหมาย Upgrade OS version ไม่ Render miracles

ผมมีโอกาส Verify statement นี้ใน Enterprise world ด้วย Commercial flavors ของ Linux Newer versions/kernels ระบบเคย Give significant improvements (หรือ Meaningful ones) บน Existing platforms พวกเขา Perform better บน Brand new hardware ไม่ใช่แค่ Kernel เองที่ Make difference แต่ Combination ของ Kernel, glibc, Compilers, Software versions, และ Hardware drivers

Given all this, แม้ไม่มี Hidden agenda คนจะ See one ทำไมคาดหวัง Microsoft? เขียนบน Blog: No, don't use Windows 10, we don't need the money?

Which is why you ignore Consumer advice from Product owner เพราะมัน Subjective แม้ 100% True ยังคง Subjective และนี่คือที่ที่เราเจอ Failure ของ "Tech" media head on

ร้อยๆ Websites รีบพูดถึง Topic - Literally Verbatim copy-paste Microsoft และ Intel statements Hey ใคร Savvy พอที่จะ Ctrl+C, Ctrl+V ก็ทำได้ Focus อยู่ที่ Drama และ Lament ไม่มีใคร Bother Check facts, Test statements, Present data (มี Brave souls เริ่มแสดง Numbers จริง แต่ยัง Speculation เยอะ เช่น Nature ของ Vulnerabilities)

ผมเชื่อ คนควรพูดแค่สิ่งที่รู้และเข้าใจ ในใจผม Techie หมายถึง Deep knowledge ของสิ่งที่เขียน หากผมอยาก Empty pre-sales/sales pitches เต็ม Buzzwords และ Complicated terms (Branches, Memory management) ผมจะไป Life-guru session ให้ First-world existence ใหม่

Actually ผมรู้สึกเศร้าให้คนเหล่านี้ ไปทำงานเช้า นั่ง Hash out หนึ่งสอง Articles เรียบร้อย วันผ่านไป Passion อยู่ไหน? Desire to help people? บอกว่า Meltdown จะช้าเครื่อง แต่ไม่ให้ Alternative หรือ Suggestion ต่อไป คือ Doomsday preaching โดยเฉพาะ Reality ไม่ Bad เลย

จากมุมมอง Tech เรามีอะไร?

ผมทดสอบ Pretty much all possible scenarios - ทั้งหมด Intel processors เพราะนั่นคือสิ่งที่ผมมี ไม่มี AMD system ตอนนี้ Windows 7/8/10 ทำงานเร็วเหมือนเดิม ถ้าไม่ใช่เร็วกว่า ไม่มี Discernible impact จาก Patches Platform ไม่ Relevant 2010-2015 Asus, Lenovo, HP All good ทดสอบ 5 Generations ของ i3/5/7 processors, Nvidia และ Intel HD graphics และ Hybrid, Limited และ Admin user และ Mixes อื่นๆ

ลอง Gaming รวมถึง Titles ที่พอสมควร ลอง Media streaming Locally และ Online, Browsing, Image manipulation Word processing, Encryption software ฯลฯ ไม่มี Single error, crash, lag, delay, หรืออะไรเลย ผมหวังว่าทุก Future updates จะ Nice เท่านี้

One thing: ผมใช้ No AV software ไม่เห็น Point ชอบ Limited user, EMET และ/หรือ Exploit Protection Microsoft มี Phenomenal security frameworks ตี Classic blacklist-approach tools ทั้งหมด และจาก QualityCompat registry hack สำหรับ Meltdown patches ผม Presume Slowdowns เป็นไปได้หากคนใช้ Anti-virus เพราะมี Focus เยอะที่นั่น แต่ผม Test ไม่ได้ และไม่อยากทำแม้จะทำได้ Teach a man to fish kind of thing ชอบ Help และ Educate คนใน Philosophy of problem solving และ Critical thinking

สุดท้าย อย่าทำเหมือนคนอื่น

Apply to everything in life หากทำเหมือนคนอื่น คุณจะเหมือนคนอื่น และ Most people are just Mediocre ทำงานทั้งชีวิตจ่าย Loans และ Mortgages คุณไม่ต้องการนั้น

พวกเขาบอก Buy ให้ Sell World clamoring Security, Panic - คุณ Relax ในกรณีนี้ Bad moment ใน IT industry ไใช่ Right time ทำ Software/hardware upgrades อย่าถูก Push ให้ซื้อคอมพิวเตอร์ใหม่ Switch vendors, Upgrade OS หรืออะไร หากคุณ Planned pamper ตัวเองด้วย Laptop/Desktop ใหม่ ไป ahead Sure แต Reaction ด้วย Wallet ผิดที่สุด

Best you can - และ Should do - คือ ไม่ Trust anyone ไม่แม้ผมเอง อ่าน Article นี้ แล้ว Run Own independent tests ที่ Suit Skill และ Needs ทำให้มัน Work for you ผม Highly confident คุณจะ See virtually no deterioration in system performance - ถ้าคุณ Run setups เหมือนผม (No real-time AV) หากคุณใช้ AV Article นี้อาจไม่ใช่ Best advice

สรุป

ถ้าขอ Numbers ผมไม่ให้ เพราะมันไม่ Mean anything UI slowness เป็น Subjective Benchmarks สำคัญ - สำหรับ Industry หากคุณ Run 400TB database cluster over 55 nodes interconnected over 10Gbps fiber ใช่ อาจต้องการ Every cycle you can get Home environment? Forget it.

จาก Subjective, Personal และ Exhaustive testing บน Hardware platforms หลากหลาย Mix of OS, Scenarios, Conditions และ Programs ผมไม่เห็น Perceived performance degradation ใดๆ ไม่ว่าจะ New หรือ Old system หรืออะไร ทุกอย่าง Works well ทุกอย่าง Stable ทุกอย่างที่พูดได้: Great job vendors สำหรับ Media นอก هناك ระวัง Clicks Sensationalism sells.

Cheers.