Page File คืออะไร? เราควรปิดหรือเปิดมันดี? ควรใช้ RAM Disk เก็บไหม?

Page File คืออะไร

Page File (บางคนเรียก Swap file คล้ายๆกัน) คือไฟล์ที่ระบบ OS ต่างๆ เช่น Windows สร้างขึ้นมาเพื่อย้ายข้อมูลบางส่วนใน RAM มาเก็บใน Hard Disk ถ้าหากถามว่ามันทำเพื่ออะไร Hard Disk มันช้ากว่า RAM ไม่ใช่เหรอ คำตอบง่ายๆ เพื่อไว้ใช้ในกรณีที่มีโปรแกรมใช้ RAM มากๆ จนทำให้ RAM ไม่พอ จึงต้องย้ายบางโปรแกรมที่ไม่ใช้ไปเก็บที่อื่นก่อน เพื่อให้ RAM พอกับโปรแกรมที่เราใช้ในปัจจุบัน (ในบางครั้ง มันก็ย้ายลง Page file ทั้งที่ RAM ยังเหลืออยู่ เพราะว่ามันเก็บ Cache การอ่านไฟล์ลง RAM ด้วย ยกตัวอย่างเช่น การเปิด Word ครั้งแรกคุณจะรู้สึกว่าช้า แต่เมื่อคุณเปิดอีกครั้งมันจะเร็วขึ้น เพราะข้อมูลบางส่วนถูก Cache อยู่ใน RAM)

แล้วทำไมบางคนบอกให้ไปปิดมัน

อย่างที่ทราบกันว่า Hard Disk นั้นช้ากว่า RAM มาก เมื่อมีการย้ายข้อมูลบางส่วนลง Hard Disk ไปใส่ Page file แล้ว เมื่อมีการเรียกใช้ข้อมูลส่วนนั้น มันก็จะต้องวิ่งผ่าน Hard Disk ซึ่งช้ากว่า ทำให้มันช้าลงในกรณีนี้

แล้วจริงๆแล้วเราควรปิดมันไหม

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

ยกตัวอย่างเช่น เครื่องผมมี RAM 16 GB และไม่ได้ใช้โปรแกรมที่กิน RAM สูงอย่างพวก Photoshop โดยทั่วไปผมใช้แค่ Word, PowerPoint,Chrome,Firefox ทั่วๆไป มีการเขียนโปรแกรมใช้พวก Eclipse, phpStorm ซึ่งกิน RAM ค่อนข้างมาก แต่ไม่เกิน 4GB ดังนั้นโดยทั่วๆไปเครื่องผมไม่น่าจะใช้ RAM ถึง 8 GB ได้ ดังนั้นในกรณีผมควรจะปิด เพื่อให้ใช้เครื่องได้ลื่นไหลขึ้น  (ไม่มีการเก็บข้อมูลใน Hard Disk แน่นอน เลยไม่มีการหน่วงเวลาสลับโปรแกรม)

อันนี้ก็ขึ้นกับ RAM ของคุณและพฤติกรรมของคุณ ถ้าคุณใช้แค่ Chrome, Firefox,Word ทั่วไป และมี RAM มากกว่า 8GB ผมแนะนำว่าควรปิดไปเลยก็ได้

คำเตือน หากคุณมีการใช้ Photoshop ตัอต่อ VDO หรืออะไรก็ตามที่ใช้ RAM เยอะ ไม่ควรปิดโดยเด็ดขาด เพราะหาก RAM ไม่พอ ถ้าโชคดีมันเตือนทัน มันก็จะเตือนให้ไปปิดโปรแกรมอื่น หรือเปิด Page file ก่อน แต่ถ้าเราแก้ไขไม่ทัน ตัว OS จะปิดโปรแกรมนั้นทิ้งทันที ซึ่งอาจจะทำให้ข้อมูลคุณหายได้

วิธีปิด Page file

หลังจากที่คุณตัดสินใจจะปิด Page file แล้ว การปิด Page file มีขั้นตอนดังนี้

  1. กดปุ่มรูป Windows + R แล้วพิมพ์ SystemPropertiesAdvanced ลงไป กด OK
    เปิด Run Command และใส่ SystemPropertiesAdvanced ลงไป กด OK
  2. กดที่ Settings
    กดที่ Settings
  3. ไปที่ Advanced และกด Change
    ไปที่ Advanced และกด Change
  4. เอาเครื่องหมายถูกบนสุดออก เพื่อบอกว่าเราจะตั้งค่า Page File เอง และเลือก No Paging File และกด Set เพื่อปิด Page file มันจะขึ้นข้อความถามว่า จะปิด Page file จริงๆใช่ไหม ให้กด Yes เลย
    เอาเครื่องหมายถูกบนสุดออกและเลือก No Paging File
  5. กด OK เรื่อยๆจนหมดครับ มันจะบอกว่าให้ Restart เครื่องไหม ให้กด Restart Now เพื่อ Restart ครับ เพื่อให้เครื่องปรับการตั้งค่า (ไม่สามารถลัดด้วยการ kill explorer.exe เปิดใหม่ได้นะครับ)

หากต้องการใช้ Page file ควรคิดถึงอะไรบ้าง

หากยังต้องการเปิด Page file อยู่ ไม่ว่าด้วยเหตุผล RAM ไม่เยอะ หรือป้องกันโปรแกรมปิดเองเวลา RAM ไม่พอ ผมมีข้อแนะนำนิดหน่อย ดังนี้

  1. เราควรเลือกให้อยู่ใน Partition ที่อยู่ Hard Disk คนละตัวกับที่มี Windows ถามว่าทำไม เพราะโปรแกรมโดยมากใช้ข้อมูลบน โฟลเดอร์ Windows และ Program files ในนั้น ดังนั้นหากเราย้ายไปที่ Hard Disk คนละตัว จะช่วยให้สามารถอ่านเขียนได้เร็วขึ้น เพราะไม่ต้องแย่งทรัพยากรกับโปรแกรมอื่น
  2. หากมี Hard Disk แค่ตัวเดียว ควรเลือก Partition ที่มีที่ว่างเหลือเยอะที่สุด เพื่อที่จะทำให้ Page file จะอยู่ติดกัน ไม่มี fragment บน Hard Disk มากนัก จะช่วยให้เร็วขึ้นนิดหน่อย
  3. ไม่ควรใส่ Page file ลงบน SSD เพราะ ถึงแม้ SSD จะเร็วมาก แต่มีการจำกัดจำนวนครั้งที่จะเขียนได้ต่อลูก ดังนั้นจึงทำให้อายุของ SSD สั้นลงได้ จนถึงขั้นว่าบางคนแนะนำให้ปิด Page file ถ้ามี SSD แค่ลูกเดียว

เราควรใช้โปรแกรมพวก RAM Disk ช่วยไหม

ผมไปอ่านมาหลายที่ มีหลายคนชอบแนะนำว่าให้ใช้โปรแกรม RAM Disk ช่วย คำถาม RAM Disk คืออะไร มันเป็นโปรแกรมที่นำพื้นที่บางส่วนของ RAM มาใช้เก็บข้อมูล และเนื่องจาก RAM มันเร็วมาก บางคนเลยเอามาใส่ Page File ซะเลย ซึ่งเป็นเรื่องที่ผิดครับ

ถามว่าทำไม? ลองกลับไปอ่านต้นๆของบทความนะครับ Page file คือ file ที่เก็บบางส่วนของ RAM ไปไว้บนไฟล์ เพื่อช่วยให้ระบบทำงานลื่นไหล แม้ว่าโปรแกรมจะกิน RAM มหาศาลก็ตาม

ทีนี้เมื่อเราใช้ RAM Disk ซึ่งเอาบางส่วนของ RAM มาทำเป็น Partition ดังนั้นหมายความว่า RAM Disk ไม่มีทางสร้างได้มากกว่าขนาดของ RAM ที่เรามี ดังนั้นจึงหมายความว่า Page file จะไร้ค่าไปในทันที เพราะโดยรวมแล้วจะไม่สามารถย้ายข้อมูลที่ไม่ใช้ออกนอก RAM ได้เลย เพราะงั้นถ้าจะใส่ Page file ลง RAM Disk ปิด Page file ไปเลยก็ได้ครับ

 

 

มาเล่น Red Alert 2 / Yuri’s Revenge แบบ Online กัน

บทความนี้เริ่มมาจาก EA แจกเกมส์ Red Alert 2 และ Yuri Revenge แบบฟรี ผ่าน Origin (ถ้าอยากได้ สมัคร Origin แล้วกดที่นี่ ถ้ามันยังอยู่นะ) ทีนี้ผมกับพื่อนก็อยากจะเล่นด้วยกันหลายๆคน จริงๆอยากเล่นผ่าน Lan แต่ว่าเกมนี้ค่อนข้างเก่า ทำให้ Protocol IPX ที่มันใช้ในการเล่นผ่าน Lan ไม่มีใน Windows 7 ขึ้นไป แถมเล่นผ่าน Intenet ก็ไม่ได้ เพราะเซิฟเวอร์หลักมันปิดไปแล้ว จึงต้องหาสิ่งทดแทน ผลก็คือ ผมเจอสิ่งนี้ครับ CnCNET ซึ่งมันมีเกม Command & Conquer ไว้มากมายสหรับเล่น Online (แต่ต้องมีเกมส์ตัวจริงก่อนนะ) เกริ่นแค่นี้พอแล้วกัน มาเริ่มกันเลย

*** ณ ปัจจุบัน วันที่เขียน CnCNet5 เล่นได้แค่ Yuri’s Revenge แต่เค้าบอกอีกไม่นานก็ใช้กับ RA2 ครับ ***

สิ่งที่ต้องมี

  1. เกมส์ Red Alert 2 และ Yuri’s Revenge
  2. CnCNet5 For Yuri Revenge ดาวโหลดได้จาก http://cncnet.org/red-alert-2 ตรงคำว่า Download Online & Play
  3. อินเตอร์เน็ต

อ่านเพิ่มเติม มาเล่น Red Alert 2 / Yuri’s Revenge แบบ Online กัน

WordPress ช้าเพราะ Really Simple CAPTCHA

อันนี้เอามาจากโพสนี้ ไม่ได้เจอเอง คิดว่าน่าจะแก้ได้แล้วเพราะเจ้าของโพสมากดไลค์ แต่ไม่แจ้งผล

really_simple_captcha_property

ปัญหาที่เกิดคือเค้าบอกว่าเว็บช้ามาก เพราะ Really Simple CAPTCHA และขนาดของ plugin ใหญ่มาก (พวก cache ภาพที่ gen แล้วต่างๆ) ตอนแรกผมไม่เชื่อเท่าไหร่ เพราะผมคิดว่ามันไม่น่าจะช้าได้จากตัวนี้ จนกระทั่ง เค้าใช้ P3 Profiler มาให้ดูจริงๆ ผมก็เลยไปลองไล่ดู Code

ผมเดาว่าสาเหตุนั้นมาจากตอน clean up พวกภาพที่หมดอายุต่างๆ ทำให้มันกิน resource จากตัวอย่างคือ loop อ่าน meta file 20000 กว่ารอบ เพื่อลบไฟล์ที่ไม่ใช้ (ยิ่งถ้าใช้พวก NFS นะ โคตรช้า)

Solution

  1. เปิดไฟล์ really-simple-captcha.php หา function cleanup ให้แก้ไขเป็นดังนี้
    	public function cleanup( $minutes = 60 ) {
    		return 0;
    	}

    (ปิดการทำงานของ clean up เพื่อไม่ให้เว็บช้า เราจะย้ายไปทำใน background แทน)

  2. ให้สร้างไฟล์ชื่อ cleanup.php ข้างๆ really-simple-captcha.php มีเนื้อความดังนี้
    <?php
    $minutes=60;
    $dir = trailingslashit( path_join( dirname( __FILE__ ), 'tmp' ) );
    $dir = str_replace( '\\', '/', $dir );
    $dir = preg_replace( '|/+|', '/', $dir );
     
    if ( ! @is_dir( $dir ) || ! @is_readable( $dir ) )
            return false;
     
    $is_win = ( 'WIN' === strtoupper( substr( PHP_OS, 0, 3 ) ) );
     
    if ( ! ( $is_win ? win_is_writable( $dir ) : @is_writable( $dir ) ) )
            return false;
     
    $count = 0;
     
    if ( $handle = @opendir( $dir ) ) {
            while ( false !== ( $filename = readdir( $handle ) ) ) {
                    if ( ! preg_match( '/^[0-9]+\.(php|txt|png|gif|jpeg)$/', $filename ) )
                            continue;
     
                    $file =  $dir . $filename ;
                    $file = str_replace( '\\', '/', $dir );
                    $file = preg_replace( '|/+|', '/', $dir );
     
                    $stat = @stat( $file );
                    if ( ( $stat['mtime'] + $minutes * 60 ) < time() ) {
                            @unlink( $file );
                            $count += 1;
                    }
            }
     
            closedir( $handle );
    }
     
    ?>

    (เป็นไฟล์สำหรับ clean up แบบ manual)

  3. สร้าง cronjob เพื่อสั่งให้ cleanup.php ทำงาน (หรือเข้ามาสั่งเองทุกวันก็ได้ แต่ถ้าสั่งช้า มันจะกินพื้นที่ HDD เยอะขึ้นเรื่อยๆ)

จบ เอาไปทดสอบได้เลยครับ

[บันทึก] R&D เทคนิคป้องกันการดูดรูปภาพจากเว็บ (ขโมยรูป)

สืบเนื่องมาจากโพสนี้ครับ คือ ณ วันที่เขียนบทความนี้ เว็บ www.Nekopost.net (ตอนเข้าต้องมี www. ทุกครั้งไม่งั้น ajax เค้าพัง) ใช้วิธีป้องกันการขโมยรูปโดยใช้วิธีเอารูปจริงๆ ไปใส่ในภาพที่มีพื้นหลังสีขวา และภาพใหม่นั้นขนาดใหญ่กว่าภาพเดิม โดยใส่แบบสุ่มตำแหน่ง แล้วใช้ JS+CSS แสดงเฉพาะส่วนที่เป็นภาพหลักตรงๆ ผลคือหมาไฟ (Firefox) ผมมีโอกาศเพี้ยนเวลาที่มันกิน RAM ไปเยอะแล้วไปอ่านการ์ตูน (หรืออาจจะเป็นเพราะผมมีนิสัยกด END รัวๆเพื่อให้มันโหลดภาพทั้งหมดมาก่อนแล้วค่อยไล่อ่านรึเปล่า) ดังนั้นผมเลยเสนอวิธีไป (จริงๆวิธีที่ 1 คิดได้ตั้งแต่วันแรกที่เห็นมันทำแล้วแหละครับ แต่ไม่ได้ proof เป็น code สักที เพราะผมอยากพยายามหาวิธีที่กันการคัดลอก และดีกว่าที่เค้าใช้อยู่ โดยเชื่อว่าวิธีที่เค้าใช้ไม่ได้ดีที่สุด)

วิธีที่ 1 ใช้อีกภาพเป็น Key แล้วใช้ XOR กับต้นฉบับ

อันนี้เป็นวิธีแรกที่ผมมี Code อยู่ที่นี่ครับ หรือ Download พร้อม Sample Data  ที่นี่ แนวคิดดังนี้

  1. สร้างภาพ Key ขึ้นมา เป็นภาพเล็กๆ สมมุติขนาด 64*64 px โดยแต่ละจุดสร้างจากการสุ่มสีขึ้นมารวมเป็นภาพมั่วๆ
  2. เอาแต่ละจุดของภาพต้นฉบับไป XOR กับภาพ Key ทีละสีเลย โดยใช้คุณสมบัติจาก
    ถ้า a XOR b = c แล้ว c XOR b = a
  3. ที่ Browser ใช้ Canvas ทำ Pixel Manipulation เพื่อทำการ XOR กลับมา
  4. แต่ถ้าสั่งแสดงที่ Canvas เลย ตัว Google Chrome มันเทพเกิน สามารถคลิกขวาที่ Canvas แล้ว Save As ได้ จึงต้องแปลงเป็น Data URI แล้วทำเป็น Background ให้ Div แทน

แต่เมื่อลองทำแล้ว เกิดปัญหาดังนี้

  1. Browser ต้องใหม่ระดับหนึ่ง (เพราะใช้ Canvas)
  2. มันกิน RAM มากๆ เวลาถอดรหัส อาจจะมากกว่าภาพใหญ่ของ Nekopost อีกต่างหาก
  3. ถ้าใช้กับ Mobile ที่ CPU ช้า อาจจะต้องรอนานกว่าภาพจะถอดรหัสเสร็จ (ระดับวินาที) และค่อนข้างกินแบตเตอรี่
  4. บน Tablet ผม (Samsung Galaxy Note 8) มีปัญหาว่า canvas เหมือนมันขี้เกียจทำบางจุด หรือประมวลผลผิดไม่รู้ทำให้มี Noise เป็นจุดสีๆเกิดขึ้นบนภาพ ทั้งๆที่บน PC ไม่เจอ

ดังนั้นแนวคิดนี้ผมเลยตกไป

วิธีที่ 2 สลับตำแหน่งของภาพ แนวคิดแบบตัวต่อจิ๊กซอว์

เป็นวิธีที่ 2 ที่ผมคิดมาแทนอันแรก ซึ่งตกไปในเรื่อง Performance และการใช้งานจริง วิธีนี้สามารถดู Code ได้ที่นี่  หรือ Download พร้อม Sample Data ที่นี่ แนวคิดดังนี้ครับ

  1. แบ่งภาพออกเป็น x คอลัมน์  y แถว โดย x ต้องหารความกว้างภาพลงตัว และ y ต้องหารความสูงภาพลงตัว (ถ้าไม่ลงตัวจะเกิดปัญหาภาพไม่ต่อกัน ดูไม่งามได้)
  2. สุ่มนำภาพแต่ละช่อง ไปวางมั่วๆบนภาพใหม่ แล้วสร้าง meta file บอกว่าเดิมนั้นแต่ละส่วนอยู่ตรงไหน
  3. เวลาแสดงก็อ่าน meta file มาสร้าง div ข้างในแทนแต่ละ block ให้แสดง background ของแต่ละช่องให้ถูกต้อง

ตัวอย่างภาพที่ผมทำ จะประมาณนี้

Before ShuffleBefore After ShuffleAfter

วิธีนี้หลังจากลองในเบื้องต้น พบว่าใช้ได้ OK เลย แต่มันมีปัญหานิดหน่อยใน Code ของผม คือมีส่วนที่ยุ่งเกี่ยวกับ DOM ที่ผมไม่ได้ Optimize อยู่ ดังนั้นถ้าแสดงภาพเยอะๆ จะทำให้เปิด Browser มาแล้วเหมือนค้าง หลังจากนั้นจะเร็วแล้วครับ

ผลจากวิธีที่ 2 สามารถลด RAM ได้มากกว่าวิธีที่ Nekopost ใช้ปัจจุบันเยอะมากครับ

memory_report

จากตาราง แสดงดังนี้

  1. PID 9532 เป็นวิธีจิ๊กซอว์ของผม
  2. PID 456 เป็นของ Nekopost
  3. PID 2756 เป็นภาพต้นฉบับจากเว็บคนแปลเลย (แต่ผมนั้นใช้ Adblock ทำการ block ส่วนของ social media กับ comment ทิ้ง เพื่อให้ขนาดใกล้เคียงนะครับ เหลือพวกภาพ Header กับโครงไว้)

ผลดังนี้ครับ

  • จะเห็นวิธีผมกิน RAM ใกล้เคียงกับขนาดต้นฉบับค่อนข้างมากครับ (เทียบ 9532 กับ 2756) แต่ถ้าเทียบแค่ภาพจริงๆ ต้นฉบับน่าจะน้อยกว่าผม
  • วิธีผมเมื่อเทียบกับ Nekopost ลด RAM เยอะมาก (จริงๆ Nekopost เพิ่ม RAM ที่ต้องใช้มากกว่า) จากเกือบ 400MB เหลือ 220MB (ทำไมภาพแค่ 23 ภาพมันแดก RAM เยอะจังวะ?)

มาทดสอบความเร็วอินเตอร์เน็ตของเซิฟเวอร์ที่เราใช้โดยไม่ต้องลง GUI กัน

เนื่องจากผมมีความจำเป็นบางอย่าง ต้องทำการทดสอบความเร็วอินเตอร์เน็ตของเซิฟเวอร์ผม (ตอนลง H@H Client ต้องส่งหลักฐานความเร็วอินเตอร์เน็ต) แต่ว่าผมไม่อยากลง GUI ให้เป็น Overhead เซิฟเวอร์ เลย Google เอา เจอ 1 ลิงค์ ที่นี่ครับ

สิ่งที่ต้องการ

  • SSH เข้าเซิฟเวอร์ที่เราจะทดสอบ
  • Python เวอร์ชัน 2.4.3+
  • wget หรือ curl หรืออะไรก็ได้ที่โหลดไฟล์ได้ ตามสะดวกเลย

มาลองเล่นกัน

  1. ขั้นแรก SSH เข้าเซิฟเวอร์ก่อน
  2. ต่อมา ต้องโหลดตัว Speedtest-cli ก่อน โดยใช้คำสั่งนี้
    wget -O speedtest-cli.py https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
  3. ต่อมา เราก็สามารถใช้ได้เลย โดยใช้คำสั่งต่อไปนี้
    python speedtest-cli.py

    เราจะได้ ข้อมูลมาประมาณนี้ครับ

    Retrieving speedtest.net configuration...
    Retrieving speedtest.net server list...
    Testing from CS LoxInfo (27.254.141.216)...
    Selecting best server based on latency...
    Hosted by STS Group (Bangkok) [1.79 km]: 2.138 ms
    Testing download speed........................................
    Download: 892.58 Mbit/s
    Testing upload speed..................................................
    Upload: 592.59 Mbit/s
    

    ซึ่งในข้อมูลจะมีบอกว่า Test จากไหน และ Test ไปที่ไหน (ในตัวอย่างไม่ได้ระบุปลายทาง มันจะเลือกที่ที่ใกล้ที่สุดครับ) ความเร็ว Download และ Upload เท่าไหร่

    เดี๋ยวก่อน มันยังไม่หมดแค่นั้น เรายังสามารถให้ script นี้ทำการแชร์ภาพเป็นหลักฐานให้คนอื่นได้ด้วย โดยสั่ง

    python speedtest-cli.py --share

    (เติม –share ต่อท้าย) จะได้ผลลัพธ์คล้ายๆเดิม แต่มีลิงค์สำหรับแชร์ติดมาด้วย

  4. สามารถใช้ คำสั่งนี้เพื่อดู Option ต่างๆที่ใช้ได้ครับ
    python speedtest-cli.py --help

ถ้าอยากทดสอบความเร็วออกต่างประเทศละ?

ง่ายนิดเดียวครับ ขั้นแรก โหลดไฟล์ด้านบนมาก่อนครับ จากนั้น

  1. ให้สั่งคำสั่งนี้ เพื่อดูว่าเราทดสอบกับเซิฟเวอร์ไหนได้บ้างก่อนครับ
    python speedtest-cli.py --list
  2. จะได้ผลลัพธ์ประมาณนี้มาครับ
    Retrieving speedtest.net configuration...
    Retrieving speedtest.net server list...
    2459) SBN (Bangkok, Thailand) [1.79 km]
    3855) dtac (Bangkok, Thailand) [1.79 km]
    3147) AIS (Bangkok, Thailand) [1.79 km]
    4222) Shama Thunder (Bangkok, Thailand) [1.79 km]
    1219) STS Group (Bangkok, Thailand) [1.79 km]
    5609) Internet Thailand PCL (Bangkok, Thailand) [1.79 km]
    4347) cattelecom (Bangkok, Thailand) [1.79 km]
     428) adslthailand.com (Bangkok, Thailand) [1.79 km]

    2 บรรทัดแรกไม่ต้องสนใจครับ สนใจบรรทัดถัดๆมาดีกว่าครับ มันจะจัดในรูปแบบ

    ID) ชื่อสถานที่ (เมือง,ประเทศ) [ระยะห่าง]

    อย่างเช่นผมต้องการทดสอบความเร็วไปที่ประเทศญี่ปุ่น ผมก็เลือกบรรทัดนี้

    4497) Globe Telecom (Tokyo, Japan) [4612.39 km]

    จากบรรทัดที่ผมเลือกจะเห็นว่า ID เป็น 4497 เราก็จะเอาตรงนี้ไปใช้กับขั้นต่อไปครับ

  3. เราจะใช้คำสั่งต่อไปนี้ เพื่อบังคับให้มันใช้เซิฟเวอร์ปลายทางที่เรากำหนด
    python speedtest-cli.py --server=4497

    เพียงเท่านี้เราก็ทดสอบความเร็วออกนอกประเทศได้แล้วครับ
    เราสามารถใช้คำสั่งนี้ร่วมกับ –share เพื่อเอาลิงค์ภาพได้ครับ