มาเล่น 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 กัน

มาทดสอบความเร็วอินเตอร์เน็ตของเซิฟเวอร์ที่เราใช้โดยไม่ต้องลง 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 เพื่อเอาลิงค์ภาพได้ครับ

ติดตั้ง/ปรับแต่ง DirectAdmin เพื่อให้รองรับจำนวนคนจำนวนมาก

อันนี้เป็นประสบการณ์กากๆของผมที่ทำต้องจัดการให้เซิฟเวอร์ที่ใช้ DirectAdmin อยู่ สามารถรองรับจำนวนคนได้เยอะๆครับ วิธีการง่ายๆดังนี้ครับ

  1. ปรับ Web Server ให้ใช้ Nginx เป็น Reverse Proxy (อ้างอิงวิธีการจาก ลิงค์นี้)
    1. ก่อนอื่นสำหรับ คนที่ติดตั้ง DirectAdmin ไปแล้วต้องมั่นใจว่า CustomBuild ต้องมากกว่าเวอร์ชั่น 2 สามารถตรวจสอบได้โดย SSH เข้าไป แล้วใช้คำสั่งดังนี้
      cd /usr/local/directadmin/custombuild
      ./build version

      ดูว่าเลขหน้าสุดเป็นเลข 2 ไหมครับ ถ้าไม่ ให้ทำการปรับ CustomBuild เป็นเวอร์ชั่น 2 ครับ โดยสามารถทำได้ตามลิงค์นี้ครับ หรือสั่งคำสั่งด้านล่างนี้ครับ (คำเตือน Backup ทุกอย่างก่อน Update ทุกครั้ง)
      cd /usr/local/directadmin
      mv custombuild custombuild_1.x
      wget -O custombuild.tar.gz http://files.directadmin.com/services/custombuild/2.0/custombuild.tar.gz
      tar xvzf custombuild.tar.gz
      cd custombuild
      ./build
      ./build all d
      ./build rewrite_confs
    2. ติดตั้ง Nginx เป็น Reversed Proxy ซึ่งตรงนี้ทาง DirectAdmin เริ่ม Support การติดตั้งอัตโนมัติแล้ว สามารถทำได้ตามคำสั่งด้านล่างนี้ครับ
      cd /usr/local/directamin/custombuild
      ./build update
      ./build update_da
      ./build set webserver nginx_apache
      ./build nginx_apache
      ./build rewrite_confs
    3. เมื่อติดตั้งเสร็จแล้ว มันยังมีปัญหานิดหน่อยครับ คือตัว Apache ทีให้บริการ Web App นั้นมอง IP ของเซิฟเวอร์เองเป็น Client เนื่องจากวิ่งผ่าน Nginx จึงต้องลง mod เพิ่ม ดังนี้ครับ
      cd /usr/local/src
      wget https://github.com/y-ken/mod_rpaf/archive/master.zip
      unzip master.zip
      cd mod_rpaf-master
      /bin/sed -i "s/remote_/client_/g" mod_rpaf-2.0.c
      make && make install

      จากนั้นไปที่ /etc/httpd/conf/extra/httpd-includes.conf  แล้วเพิ่มข้อความต่อไปนี้ลงล่างสุดครับ
      LoadModule rpaf_module      /usr/lib/apache/mod_rpaf-2.0.so
      <IfModule mod_rpaf-2.0.c>
          RPAFenable On
          RPAFproxy_ips 127.0.0.1
          RPAFsethostname On
          RPAFheader X-Client-IP
      </IfModule>
  2. ปรับแต่งเซิฟเวอร์เพื่อให้รองรับคนจำนวนมากได้ (จำเป็นค่อนข้างมาก ไม่งั้นอาจจะเจอ Bad Gateway หรือ Gateway Timeout บ่อย)
    1. ปรับแต่ง Kernel Queue เพื่อให้รับการเชื่อมต่อจำนวนมากๆได้ โดยใช้คำสั่งต่อไปนี้
      sysctl -w net.core.somaxconn=100000

      และเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ /etc/sysctl.conf
      net.core.somaxconn=100000
    2. ปรับแต่ง Port ที่ระบบใช้ได้ให้มากกว่าเดิม โดยใช้คำสั่งต่อไปนี้
      sysctl -w net.ipv4.ip_local_port_range="10000 65535"

      และเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ /etc/sysctl.conf
      net.ipv4.ip_local_port_range=10000 65535
    3. ปรับแต่งให้ปิดการเชื่อมต่อได้เร็วขึ้น เพื่อเอาไปใช้รับการเชื่อมต่อใหม่ โดยใช้คำสั่งต่อไปนี้
      sysctl -w net.ipv4.tcp_tw_reuse=1

      และเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ /etc/sysctl.conf
      net.ipv4.tcp_tw_reuse=1
    4. อันนี้ผมจำไม่ได้ว่ามันทำอะไรครับ แต่เห็นเซิฟเวอร์ปัจจุบันมี และคิดว่าค่อนข้างสำคัญ
      sysctl -w net.ipv4.ip_nonlocal_bind=1

      และเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ /etc/sysctl.conf
      net.ipv4.ip_nonlocal_bind=1
    5. ปรับแต่งเพิ่มจำนวนไฟล์สูงสุดที่ 1 โปรเซสเปิดได้ให้มากที่สุด โดยใช้คำสั่งต่อไปนี้
      ulimit -n 999999

      และเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ /etc/security/limits.conf
      * soft nofile 999999
      * hard nofile 999999
  3. ปรับแต่งให้ Nginx ให้บริการ Static File (ไฟล์ที่ไม่ประมวลผลเช่นภาพเป็นต้น) โดยไม่ผ่าน Apache เพราะ Nginx สามารถทำงานด้านนี้ได้ดีกว่า Apache มาก (คำเตือน วิธีนี้จะทำให้ส่วนที่ถูกซ่อนไว้ โดย Password Protected Directories ของ DirectAdmin อาจจะทำให้ข้อมูลที่ถูกซ่อนบางส่วนหลุดไปได้โดยไม่ถามรหัสผ่าน แต่ผมว่าในเคสทั่วไปไม่ค่อยมีคนใช้) โดยสั่งคำสั่งดังต่อไปนี้
    cd /usr/local/directadmin/data/templates/custom
    wget "https://www.ishare.in.th/wp-content/uploads/2015/02/conf.zip"
    unzip conf.zip
    rm -f conf.zip
    cd /usr/local/directadmin/custombuild
    ./build rewrite_confs
    service nginx reload

    เพียงเท่านี้ Nginx ก็จะให้บริการ Static File ส่วนมากให้ทันที (ผมอาจจะ list ไม่หมดเพราะผมก็ไปคัดลอกจากที่อื่นมาครับ)

เพียงเท่านี้ก็คิดว่าเซิฟเวอร์ปัจจุบันของท่านก็น่าจะรับโหลดเพิ่มขึ้นได้อีกเยอะครับ หากยังไม่สามารถรองรับได้อีก อาจจะต้องปรับ nginx ให้ cache หน้าที่ประมวลผลไว้สักหน้าละ 10 – 60 วิ แล้วแต่กรณีไป แต่พอดีที่ๆผมทำงาน Implement ระบบ Cache ด้านในไว้ เลยไม่มีปัญหามากครับ

การเปิดใช้งาน TRIM ของ SSD บน Ubuntu

TRIM คืออะไร

TRIM เป็นระบบที่จะจะทำการลบข้อมูลอย่างสมบูรณ์ เมื่อพื้นที่นั้นไม่เกิดการใช้งานแล้ว หรือง่ายคือถูกลบทิ้งไปแล้ว (ตามปกติ เวลาลบข้อมูลเราจะลบแค่เฉพาะส่วนที่อ้างอิงว่า file นั้นอยู่ส่วนไหนของ disk ทำให้ข้อมูลจริงๆไม่ถูกลบ และสามารถใช้โปรแกรมกู้ข้อมูลกลับมาได้บ้างส่วน) โดยการเขียนทับส่วนที่ไม่ใช้ด้วย 0

ทำไมต้องลบมันออกล่ะ

การ ทำงานของ SSD นั้นเวลาอ่านจะจะมีความเร็วเท่าเดิมเสมอ แต่เวลาเขียนนั้นจะช้าลงหากข้อมูลใน Disk มีมากขึ้นเรื่อยๆ เนื่องจากตัว Disk ต้องหาที่ๆไม่ใช้แล้ว จากนั้นจึงต้องเขียนลงไป ในกรณีที่ยังไม่ลบข้อมูลออกอย่างสมบูรณ์ ก็ยังถือว่าที่นั้นยังใช้อยู่ ทำให้ต้องอ่านข้อมูลทั้งหมดมา แล้วหาว่าตรงไหนที่เราเขียนได้แล้วบ้าง ดังนั้นหากไม่เปิด TRIM การเขียนข้อมูลจะทำได้ช้าลง

แล้วข้อเสียของ TRIM ล่ะ

จาก Patrick’s WebLog ได้อ้างว่าจากการทดสอบของเขา การเปิด TRIM ไม่ค่อยช่วยเลยในการทดสอบของเขา การเปิด TRIM ช่วยให้เขียนเร็วขึ้นเพียงเล็กน้อยเท่านั้น แต่การใช้เวลาในการลบ File อย่างสมบูรณ์นั้นมีมากกว่ามาก แต่ในความคิดผมคือปกติ TRIM น่าจะทำงานเบื้องหลัง ดังนั้นเราจึงไม่เห็นว่า TRIM ทำงานอยู่ตลอด และผมไม่แน่ใจว่าการทดสอบนี้ได้ทำ Disk ให้เต็มก่อนหรือมีข้อมูลด้านในเยอะๆก่อนรึเปล่านะครับ

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

จะรู้ได้อย่างไรว่า SSD สามารถใช้งาน TRIM ได้หรือไม่

ทำได้โดยการเปิด Terminal แล้วสั่ง

sudo hdparm -I /dev/sda | grep "TRIM supported"

หากมีบรรทัดใหม่ขึ้นมาคือ SSD ตัวนั้นสามารถใช้งาน TRIM ได้

วิธีการเปิดใช้งาน TRIM

ทำได้ 2 วิธี

1. เพิ่ม Option ไปใน fstab ตรงๆ

จากในเว็บนั้นเค้าบอกว่า วิธีนี้ไม่ควรทำ (เพราะเหตุผลเรื่องความเร็วการเขียนที่ได้ ไม่ได้ดีขนาดที่ยอมรับความเร็วตอนลบ file ได้)

วิธีคือ สั่ง

gksu gedit /etc/fstab

แล้วแก้ส่วนที่ mount root เพิ่ม discard, ส่วนมากเพิ่มหน้าคำว่า error=remount-ro
<file system> <mount point> <type> <options> <dump> <pass> 
# / was on /dev/sdb1 during installation 
UUID=1cd2fc4f-7d99-4c7a-8ea7-6f9a2d5e5960 / ext4 discard,errors=remount-ro 0 1

แล้ว Save จากนั้น retstart เครื่อง

2.สั่งทำงานเป็น cronjon

แบบนี้คือสั่งให้ทำงาน trim ตามกำหนดเวลา ทำได้โดย

gksu gedit /etc/cron.daily/trim

ใส่ Code ตามนี้ลงไป
#!/bin/sh LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG

ก่อน Save ให้ลองทดสอบก่อนว่าระบบมี command line สำหรับสั่ง trim ไหมโดยพิมพ์ลง Terminal
sudo fstrim -v /

ที่ถูกต้องจะได้ประมาณนี้
andrei@ubuntu-desktop:~$ sudo fstrim -v /
/: 8158715904 bytes were trimmed

หากถูกต้องสมบูรณ์ให้ Save file แล้วสั่งคำสั่งนี้ใน Terminal
sudo chmod +x /etc/cron.daily/trim

ก็เป็นอันจบกระบวนการครับ

หากทำกับ Disk ที่มีการ encryption ไว้ต้อทำตามขั้นตอนเพิ่มด้วย ดูจากลิงค์ที่มาเองเลยครับ

ตัดมาจาก http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html

การใช้ AGTH กับเกมส์พวก Wolf RPG Maker

ขอออกตัวก่อนว่า ที่เขียนบทความนี้ไม่ใช่เพราะเล่นเกมส์ Naked Order แล้วเล่นไม่รู้เรื่องแต่อยากรู้เนื้อเรื่องหรอกนะ อย่าเข้าใจผิดไป

เอาสั้นๆกระฉับ ใช้คำสั่งนี้ครับ

agth /v /x3 /KS /KF /C /W50F46C โปรแกรมที่ต้องการ

เช่น
agth /v /x3 /KS /KF /C /W50F46C Game.exe

จบครับ บทความนี้สั้น สาระมีแค่นี้แล พรุ่งนี้กะเคลีย