X11 - การส่งต่อและประสิทธิภาพ


12

ฉันมีแอพพลิเคชั่นที่ต้องใช้กราฟิกที่ต้องส่งต่อผ่าน X11 ฉันใช้เวลาค้นคว้า X11 และประสิทธิภาพ (ใน) รวมถึงโพสต์ที่ยอดเยี่ยมนี้: ทำไมการส่งต่อ X11 จึงไม่มีประสิทธิภาพ .

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

ดังนั้นมีข้อมูลใดที่เป็นรูปธรรมเกี่ยวกับสิ่งที่ได้รับการส่งต่อจริงและประสิทธิภาพของ ssh -X ขึ้นอยู่กับแอปพลิเคชันหรือไม่


2
"ดังนั้นมีข้อมูลที่เป็นรูปธรรมเกี่ยวกับสิ่งที่ได้รับการส่งต่อจริงหรือไม่และประสิทธิภาพของ ssh -X ขึ้นอยู่กับแอปพลิเคชันหรือไม่" ใช่. เริ่มต้นดูที่การพูดคุยของ Daniel Stone เรื่องจริงเบื้องหลัง Wayland และ Xจาก LinuxConf.au 2013
sampablokuper

1
"ฉันรู้สึกว่าหน้าจอทั้งหมดถูกส่งต่อ" มันยากที่จะเข้าใจว่าอะไรที่ทำให้คุณประทับใจเพราะสิ่งที่คนทั่วไปมักใช้กับการส่งต่อ SSH X คือการเรียกใช้แอปพลิเคชั่นแต่ละตัวบนเปลือกระยะไกลด้วยตนเอง คุณสามารถอธิบายรายละเอียดเกี่ยวกับวิธีการเปิดตัวแอพพลิเคชั่นได้ไหม?
rakslice

1
ปัจจัยหนึ่งที่ควรทราบหากคุณกำลังขนส่งเซสชั่น X บนอุโมงค์ SSH: ssh สามารถทำการบีบอัดได้ เป็น-Cตัวเลือกในบรรทัดคำสั่งหรือCompression: yesตัวเลือกในไฟล์. ssh / config หากคุณกำลังทำการส่งต่อ X แบบดั้งเดิมจาก Dallas ไปยังออสเตรเลียผ่านลิงค์ T1 ที่มีความแออัดนี่อาจเป็นความแตกต่างระหว่างการให้งานของคุณแสดงกล่องโต้ตอบห้าระดับลึกลงไปในส่วนต่อประสานและเลือกช่องทำเครื่องหมายจากงานที่ไม่สมจริง น่าผิดหวังสองชั่วโมง ฉันโชคดีที่ไม่จำเป็นต้องลองกับ Wayland แต่ฉันคิดว่ามันดีขึ้นมาก
Ed Grimm

ฉันไม่ต้องการที่จะเริ่มการสนทนาอย่างกว้างขวางในความคิดเห็นโดยเฉพาะอย่างยิ่งเนื่องจากคำถามของฉันได้รับการตอบเป็นอย่างดีโดย @grawity โดย "ทั้งหน้าจอ" ฉันหมายความว่าข้อมูลที่ส่งต่อผ่านอุโมงค์ ssh จะเป็นคำอธิบายที่ง่ายของพิกเซลบนหน้าจอ @ EdGrimm: ขอบคุณสำหรับความคิดเห็นของคุณเกี่ยวกับการบีบอัด ฉันรู้เรื่องนั้น ในสถานการณ์เฉพาะของเรา X11 ถูกส่งต่อผ่าน 10Gbit LAN Link และการบีบอัด / ไม่มีการบีบอัดดูเหมือนว่าจะไม่สร้างความแตกต่างอย่างแน่นอน
Fang

คำตอบ:


29

ฉันรู้สึกว่าหน้าจอทั้งหมดถูกส่งต่อไม่ว่าจะเกิดอะไรขึ้น ดังนั้นการส่งต่อ X11 ควรเป็นแบบไม่เชื่อเรื่องพระเจ้า

ไม่มันตรงกันข้ามจริงๆ เหตุผลในการส่งต่อ X11 เรียกว่า "การส่งต่อ X11" เป็นเพราะมันส่งข้อความโปรโตคอล Xจริงที่ใช้โดยแอปพลิเคชันเพื่อแสดงหน้าต่างของพวกเขาบน "X server" (โดยทั่วไปคือ Xorg) ข้อความเหล่านั้นเป็นคำสั่งสำหรับการสร้าง / ย้ายหน้าต่างการวาดข้อความและการใช้กราฟิกแบบดั้งเดิม (เส้น / สี่เหลี่ยม) การวาดบิตแมป ฯลฯ

คุณสามารถพูดได้ว่ามันเป็นแนวคิดที่ตรงกันข้ามกับโปรโตคอล "ภาพเต็มหน้าจอ" เช่น VNC / RFB ฉันคิดว่ามันค่อนข้างจะเทียบได้กับ RDP ของ Windows ซึ่งทำขึ้นเพื่อการขนส่งคำสั่งการวาด GDI

ดังนั้นเหตุผลที่คุณเห็นความแตกต่างระหว่างโปรแกรมคือ:

  1. หากต้องการอ้างอิงโพสต์ที่คุณอ้างอิงโดยปกติแล้วโปรแกรมที่ใช้ X ส่วนใหญ่จะทำงานดังนี้:

    โดยทั่วไป X11 ไม่ได้ส่งหน้าจอไปยังคอมพิวเตอร์ของคุณ แต่จะส่งคำแนะนำการแสดงผลเพื่อให้ X-server ในเครื่องคอมพิวเตอร์ของคุณสามารถสร้างหน้าจอในระบบท้องถิ่นของคุณได้

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

  2. เมื่อเวลาผ่านไปสิ่งนี้เปลี่ยนไปโปรแกรมเริ่มทำการเรนเดอร์ด้วยตนเองและคำแนะนำเหล่านั้นมากมายกลายเป็น "นี่เป็นบิตแมปที่ฉันแสดงแล้ววางบนหน้าจอ" - เร็วมากภายในเครื่อง แต่ช้ามากผ่านเครือข่ายเนื่องจาก X11 ขาด การบีบอัดภาพ

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

    (ในทางตรงกันข้าม RDP ปรับตัวตามเวลาและรวมถึงการบีบอัดภาพในรูปแบบต่าง ๆ เช่น JPEG และแม้กระทั่ง H.264 คุณมักจะสังเกตเห็นสิ่งประดิษฐ์การบีบอัดในขณะที่กำลังโหลดภาพเต็ม)

  3. โชคดีที่ชุดเครื่องมือ UI ส่วนใหญ่เช่น GTK ใช้การติดตามความเสียหายดังนั้นจะส่งเฉพาะภูมิภาคที่อัปเดตแล้วเท่านั้น อย่างไรก็ตามมีบางโปรแกรม (เช่น Firefox / Thunderbird หลายรุ่น) ไม่สนับสนุนสิ่งนี้และขอให้ทำการเรนเดอร์ทั้งหน้าต่างซ้ำอีกครั้งแม้ว่าจะไม่ได้อัพเดตจริง ๆ

    นั่นคือความแตกต่างระหว่างโปรแกรมอื่น ๆ - โปรแกรมที่ทำงานได้ดีนั้นยังคงสามารถใช้งานได้ผ่านเครือข่าย แต่โปรแกรมที่ buggy สามารถทำให้ลิงก์เต็ม 100 Mbps ไม่ทำอะไรเลยที่มีประโยชน์อย่างแน่นอน


1
ฉันจำได้เมื่อพยายามตั้งค่าเซิร์ฟเวอร์ MythTV ยูทิลิตี "การตั้งค่า" เป็นแอปพลิเคชั่น Qt และใช้เวลาหลายนาทีในการแสดงการกำหนดค่าแต่ละหน้าแม้จะมีลิงก์ ADSL ที่สมเหตุสมผลเป็นคอขวด (เกือบ 8 Mb / s) การทำงานไม่กี่นาทีใช้เวลาหลายชั่วโมงด้วยเหตุนี้ - มันจะง่ายกว่านี้มากกับ Curses UI หรือแม้แต่แอปพลิเคชัน X11 ที่ทำงานได้ดี ถ้าฉันรู้ว่ามันจะเป็นปัญหามากแค่ไหนฉันจะรอสัปดาห์หรือสองสัปดาห์จนกระทั่งฉันอยู่ในสถานที่และใช้กล่องฟรอนต์เอนด์ส่วนหน้าแบบใดแบบหนึ่ง ฉันต้องการให้เซิร์ฟเวอร์ทำงานได้เร็วกว่านั้น
Toby Speight

1
ในการป้องกันโปรแกรม "บั๊กกี้" เหล่านั้นควรชี้ให้เห็นว่านี่เป็นความผิดของอุดมการณ์ชุดเครื่องมือ X + ซึ่งโดยพื้นฐานแล้วมันทำให้จำเป็นสำหรับโปรแกรมบั๊กกี้เหล่านั้นในตอนแรก คุณอาจคิดว่าโปรแกรมสามารถเรียก API (ซึ่งส่งคำสั่ง) เพื่อให้มี "หน้าต่างค้นหาปกติ" เมนูและปุ่มที่นี่และแถบเลื่อนที่นั่น แต่ไม่มี คุณหรือชุดเครื่องมือต้องทำทุกอย่างด้วยมือ ฉันไม่ได้เป็นแฟนตัวยงของ MS และแอปเปิ้ลเลยแม้แต่น้อย แต่พวกเขามีสิ่งเหล่านั้นถูกต้องในขณะที่ระบบนิเวศ X ดูดมาหลายสิบปีแล้วและยังคงแย่อยู่
Damon

ฉันไม่แน่ใจว่ามีความแตกต่างหรือไม่ อะไรทำให้ Windows 'UWP หรือ WinForms หรือ comctl32 มี "เครื่องมือ" น้อยกว่า GTK และ QT พวกเขาไม่ทำทุกอย่างด้วยตนเองหรือเปล่า
1686
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.