WTF AR-BRO Support – บันทึกความกากของ AR-BRO Support

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

อันนี้จะเป็นบันทึกเตือนใจ สำหรับผู้ที่อาจจะเข้ามาใช้ AR-BRO นะครับ เป็นประสบการณ์ที่ผมได้จากการ Support ของ AR-BRO ซึ่งเป็น Cloud Provider เจ้าหนึ่งของไทย เขียนตอนเดือน 1 ปี 2017

จริงๆแล้วผมค่อนข้างอคติกับที่นี่พอสมควร ใช้วิจารณญาณในการอ่านด้วยนะครับ สาเหตุที่ผมอคติหลักๆคือมันโฆษณาว่า “ไม่ต้องจ่ายล่วงหน้าเป็นเดือน!” แต่ว่าถ้าจะสร้างเครื่องคุณต้องมีเครดิตในระบบเหลือพอจ่ายให้เครื่อง”ทั้งหมด” รวมกับเครื่องที่จะสร้างใหม่ ล่วงหน้า 21 วัน ซึ่งนั่นหมายความว่าถ้าผมต้องการขยายระบบด้วยการสร้างเครื่อง 599 บาทต่อเดือน (0.89 บาทต่อชั่วโมง) 4  เครื่อง ผมต้องเติมเงิน 1794.24 แม้ว่าจริงๆผมจะอย่างใช้แค่ 3 วัน ซึ่งคิดเป็นเงินแค่ 256.32 บาทเท่านั้น เหลือเครดิตที่ทำอะไรไม่ได้ 1537.92 บาท ยิ่งกว่านั้นถ้าผมใช้เสร็จ ลบเครื่องทิ้ง เดือนต่อไปผมมีเหตุุจำเป็นให้ต้องขยาย 4 เครื่องอีก เครดิตที่เหลือ 1537.92 ไม่สามารถใช้เครื่องขนาด 599 บาท 4 เครื่องได้อีกแล้ว เพราะเครดิตที่เหลือมีไม่พอจ่าย 21 วัน ต้องเติมเพิ่ม 256.32 ก่อนถึวจะใช้ได้  ดังนั้นถ้าใครคิดจะเอามา ขยายระบบเฉพาะหน้านี่ไม่เหมาะอย่างแรงเลยครับ เหมือนเอาเงินไปดองทำไรไม่ได้

เข้าเรื่องต่อไปจะรวมเรื่องที่ Support AR-BRO ตอบมาแบบแปลกๆกันดูครับ

[May 29, 2016 – June XX, 2016] AR-BRO MA ระบบบ่อยจนน่ากลัว

เป็นช่วงตกต่ำที่สุกของ AR-BRO เลยก็ว่าได้ ฃ่วงนั้นผมยังไม่มีเครื่องที่ใช้จริงจังเท่าไหร่ แต่เห็นหลายคนบ่นหนักว่าล่มบ่อยมาก ซึ่งในเหตุการณ์นั้นทาง AR-BRO รับมือด้วยการ ปิดระบบ Ticket, Call Center และการโพสหน้าเพจของ Facebook ไปเลย ซึ่งผมรู้สึกว่ามันดูไม่โปรอ่ะ แล้วมีครั้งนึงที่เค้าบอกว่า MA ตอน ตี 1 มั้ง แต่ผมได้ SMS แจ้งการ MA ครั้งนี้ตอนตี 4  หลัง MA เสร็จไปแล้ว โดยลูกค้าช่วงแรกอย่างพี่เนยจาก nuuneoi.com ยังย้ายกลับไปใช้ Digital Ocean เหมือนเดิมเลย (อ้างอิง)

ปัจจุบัน ปัญหาล่มทั้งระบบไม่เจอแล้วในช่วงหลัง พอไว้ใจได้ในระดับหนึ่ง ตามที่ผมเคยเจอ มีแค่ครั้งเดียวหลังจากช่วงนี้ที่ดับแล้วไม่แจ้ง (วันที่ 17 ธันวาคม 2016)

[September 9, 2016] UBUNTU 14.04 เลิกพัฒนาแล้ว ไม่ปลอดภัย

พอดีว่าผมชอบใช้ Ubuntu แต่ว่า Image ที่ AR-BRO มีให้นั้น Ubuntu 16.04 ซึ่ง ณ วันนั้น VestaCP ไม่รองรับ ผมเลยแจ้งไปทางเพจว่าขอ Image Ubuntu 14.04 ด้วยได้ไหม จริงๆแล้วเรื่องนี้มันจะไม่เป็นปัญหาเลย ถ้าเค้าไม่ดันตอบมาว่า “Ubuntu 14 เลิกพัฒนาแล้วครับมำให้มีรูรั่วจำนวนมาก” ผมนี่ถึงกับเปิดตาราง LTS เลยครับ

AR-BRO บอกว่า Ubuntu 14.04 ไม่ปลอดภัย และเลิกพัฒนาไปแล้ว WTF

สำหรับใครอยากดูว่า Ubuntu 14.04 LTS End of Life วันไหน สามารถดูได้ที่ https://wiki.ubuntu.com/LTS

ปัจจุบัน ตามที่เค้าบอก มันอาจจะจัดการระบต่างๆได้ยาก เค้าเลยไม่ใส่นะครับ และ VestaCP รองรับ Ubuntu 16.04 แล้ว ก็ใช้ Ubuntu 16.04 แทนนะครับ

[December 17, 2016] AR-BRO ปิดเครื่องโดยไม่แจ้งล่วงหน้า

ในวันที่ 17 ธันวาคน 2016 เกิดเหตุการณ์ เครื่องดับถ้วนหน้า โดยไม่มีการแจ้งล่วงหน้าว่าจะ MA หรือว่าเกิดอุบัติเหตุขึ้นอย่างไรก็มิทราบได้  (ผมจำไม่ได้ว่าดับไปช่วง 6.00 น. หรือว่าเริ่มดับช่วง 8.00 น.)  แต่ผลที่เกิดขึ้นคือเครื่องดับไป 2 ชม. ที่ผมรู้เพราะมีคนโทรมาบอกว่าเข้าเว็บไม่ได้ เห็นสถานะเครื่องดับอยู่ ต้องมาเปิดเอง เข้าใจว่าเหตุการณ์นี้น่าจะดับทุกเครื่องเลยครับ เพราะถามจากเพื่อนๆที่ใช้อยู่ก็ดับไปเหมือนกัน  (Ref) และหลังจากเหตุการณ์ AR-BRO ไม่ได้ชี้แจงใดๆทั้งสิ้น (และผมก็ไม่ได้ถามไป) แต่มีการชดเชยเครดิตให้ระดับนึง (Ref)

[January 5, 2017] Ping สูงแบบไม่ทราบสาเหตุ

เดี๋ยวจะหาว่า Support มีแต่เรื่องแย่ๆ อันนี้เรื่องดีๆบ้าง อันนี้เป็นของที่ทำงาน เค้าบอกเว็บช้ามาก ให้ลองดูหน่อย ก็เลยพบว่า PING สูงมาก (150 – 400 ms) ปกติจะประมาณ 3-5ms เท่านั้น เข้าใจว่าเฉพาะ IP 103.x.x.x เพราะเครื่องส่วนตัว IP: 150.107.29.x ปกติดี เลยเปิด Ticket แจ้งไป โดยเค้าแจ้งว่า “Network ภายในบางเส้นทางมีปัญหากำลังรีบดำเนินการแก้ไขครับ”  เค้าใช้เวลาประมาณ 10 นาทีเพื่อแก้ปัญหา แล้วทุกอย่างก็กลับมาเรียบร้อยเหมือนปกติดี

[December 16, 2016 – January 14, 2017] สั่ง npm install แล้วช้า 

อันนี้เป็นเรื่องแปลกๆคือผมไม่สามารถสั่ง npm install เพื่อลง package ต่างๆที่ใช้บน NodeJS ได้ แต่สามารถสั่งคำสั่งเดียวกันบนเครื่องที่บ้าน และที่ทำงานได้ปกติ ไฟล์ package.json ก็ตัวเดียวกัน ซึ่งยังไม่สามารถแก้ปัญหาได้ ที่สำคัญคือทาง AR-BRO ไม่ได้แจ้งอะไรกลับมาเลย ในช่วงแรกผมแจ้งไปทาง Facebook Page เค้าบอกให้ผมลองเปิด verbose mode ดู หลังจากส่งข้อมูลให้เค้าดูหลายๆอย่าง สุดท้ายก็เงียบไปและไม่ได้รับการตอบกลับอีก (เข้าใจว่าหาวิธีแก้อยู่แล้วก็ลืมไปล่ะมั้ง) หลังจากนั้นประมาณ 1 สัปดาห์ผมก็ไปเปิด ticket ในเว็บ AR-BRO อีกที ผลคือเหมือนเดิมครับ ไม่มีการตอบกลับใดๆทั้งสิ้น ถ้านับรวมเวลาตั้งแตตอนนั้นถึงตอนนี้ก็เกือบ 1 เดือนแล้วครับที่ยังไม่มีการตอบกลับใดๆทั้งสิ้น (ในระบบ Ticket) ไม่แม้แต่จะขอข้อมูลเพิ่ม

โดยข้อมูลที่ผมส่งให้มีดังนี้ (ถ้าใครพอเดาสาเหตุได้ก็ช่วยกันหน่อยนะครับ)

ตอนนี้ผมประสบปัญหาสั่ง npm install ช้ามากๆครับ

โดยจากการตรวจสอบอาการเบื้องต้น คาดว่าเป็นที่ตัวระบบ networks ครับ
อันนี้คือรูปตอนที่มันค้างไปเลยครับ http://upic.me/i/js/npm_verbose.png

โดยผมไม่คิดว่าเป็นที่ระบบของทางฝั่ง npm เนื่องจากว่าเครื่องที่ออฟฟิศสามารถใช้งานได้ปกติครับ
ดังรูป http://upic.me/i/5e/npm_compare.png
หน้าต่างซ้ายบนเป็นเครื่องของ AR-BRO ด้านขวาล่างเป็นของเครื่องออฟฟิศ เน็ต True และเน็ต 3BB ก็ปกติด้วยครับ

ในเบื้องต้นผมลอง debug ด้วยการสั่ง
time curl https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz > /dev/null
ผลที่ได้ดังรูปครับ http://upic.me/i/no/curl_v.png
และผ่านมา 2.30 นาทีแล้ว ไม่มีการขยับเพิ่มเติม

ตอนแรกผมคิดว่าเป็นที่ OS เลยเปลี่ยนจาก  https เป็น http
ผลคือค้างเหมือนกัน จึงคิดว่าไม่น่าใช่ครับ 
รูปประกอบ http://upic.me/i/bb/curl_v_http.png

ปัจจุบันผมจำเป็นต้องเพิ่มคำสั่งให้ใช้ http แทน และวิ่งผ่าน proxy จะสามารถทำงานได้ปกติ แต่ผมคิดว่ามันเป็นการแก้ที่ปลายเหตุ รบกวนตรวจสอบและแก้ให้ด้วยครับ

ปล ไฟล์ที่ช้าจะเปลี่ยนไปเรื่อยๆ บอกไม่ได้ว่าช้าที่ไหน และ url ที่เคยเร็วปกติ หากสั่งอีกครั้งอาจจะช้าได้เช่นกัน 

ลืมไป อันนี้ตัวอย่าง packae.json ครับ
http://pastebin.com/q0NgC9yq

จริงๆแล้ว case นี้ผมเดาว่าเค้าน่าจะ limit connection per second เพื่อป้องกันเราเอา host ไปยิงไรสักอย่างมั้งครับ (สังเกตุจากช่วงแรกๆมันจะวิ่งเร็วมาก แล้วก็จะนิ่งไปหลังอ่านไปสักพัก ถ้าลองสั่งหลายๆครั้งสักวันมันผ่านแน่นอน เพราะ npm cache ไว้ แต่บังเอิญผม build docker images ทำให้ในนั้นไม่มี cache และจะไม่ cache เด็ดขาด มันเลยไม่ผ่านสักที)

วันที่ปล่อยโพสนี้ (2017-01-04) ผมได้แจ้งข้อมูลเพิ่มไปใน ticket อีกรอบ ตามข้อสันนิษฐาน 1 ชั่วโมงหลังจากนั้นปิดเคสเลยครับ หายแล้ว รวมเวลากว่าจะตอบ เกือบเดือน ไม่แน่ใจว่าเพราะได้ Hint ไป หรือว่าเพราะระบบจัดการหลังบ้านไม่ดี เลยอาจจะข้ามปัญหานี้ไปต้องคอมเม้นตอบเพื่อดันกระทู้ให้เค้าเห็น

ในที่สุด AR-BRO ก็ตอบแล้ว

วิธีซ่อนลิงค์เวลาพิมพ์เว็บเพจออกจากเครื่องปริ้น

หลายคนเวลาต้องการจะปริ้นหน้าเพจของเว็บใดๆ มักจะประสบปัญหาว่าเมื่อสั่งปริ้นออกมาแล้ว ติดลิงค์เว็บและข้อมูลอื่นๆ ที่ไม่ได้ต้องการออกมาด้วย ที่บริเวณหัวและท้ายกระดาษ ดังรูป

ตัวอย่างการปริ้นที่ติดข้อมูลส่วนเกิน เช่นลิงค์เว็บบริเวณหัวและท้ายกระดาษ

ซึ่งสาเหตุที่เกิดเป็นเพราะตัว Internet Browser กำหนดว่าให้ใส่เป็นค่าตั้งต้น เพื่อป้องกันผู้ใช้ลืมว่าปริ้นจากที่ใดวันที่เท่าไหร่ ซึ่งเราสามารถปิดได้ดังนี้ (ตัวอย่างนี้ข้อใช้ Internet Explorer 11 นะครับ เข้าใจว่า 8 9 10 11 12 ใช้เหมือนกัน)

วิธีแก้ปัญหา

  1. บริเวณมุมขวาบนจะมีรูปเฟืองอยู่ ให้กดรูปเฟืองแล้วตามด้วย Print > Page Setup ตามลำดับ (ถ้ามุมขวาไม่มี ให้ไปหาจากเมนู File แทนนะครับ)
    บริเวณมุมขวาบนจะมีรูปเฟืองอยู่ ให้กดรูปเฟืองแล้วตามด้วย Print > Page Setup ตามลำดับ
  2. จะมีหน้าต่างขึ้นมาดังรูป
    ค่าตั้งต้นเมื่อสั่งปริ้นหน้าเว็บให้เราแก้ในส่วนของ Headers and Footers ตามต้องการ โดยจากบนลงล่างหมายถึงตำแน่งที่จะพิมพ์ข้อมูลออกมา ไล่จาก ซ้าย กลาวง ขวา หากไม่ต้องการให้มีข้อความใดๆให้เลือก Empty ดังรูปต่อไปนี้
    รูปแสดงการตั้งค่าให้ไม่แสดงข้อมูลส่่วนเกินในหน้าเพจ
  3. หลังจากนั้นสั่งปริ้นตามปกติได้เลยครับ จะไม่มีหัวและท้ายกระดาษมากวนใจอีกต่อไป
    ผลลัพธ์จากการปรับแต่ง

 

Script สำหรับ Backup ข้อมูล ย้อนหลัง 7 วัน

อันนี้เป็น Script สำหรับ Backup ข้อมูลผ่าน rsync โดย Backup ย้อนหลัง 7 วัน (สามารถปรับได้)

สิ่งที่ต้องเตรียมก่อนใช้

  1. Linux/Unix Only
  2. ติดตั้ง rsync
  3. เครื่อง Backup ต้องสามารถ SSH Without Password เข้าเครื่องเป้าหมายได้ (ลองอ่านอันนี้ หรืออันนี้ดูครับ)
  4. เครื่อง Backup ต้องติดตั้ง PHP (ไม่จำเป็นต้องมี Apache)
  5. เครื่องเป้าหมายควรมี MySQL Tools (พวก mysqldump เป็นต้น) ในกรณ๊ต้องการสำรองข้อมูลจาก MySQL

Script ที่ใช้

<?php
chdir(__DIR__);

$SOURCE_HOST = '[email protected]';
$SOURCE_PATH = '/home/user/';

$MYSQL_USERNAME = "DATABASE_USERNAME";
$MYSQL_PASSWORD = "DATABASE_PASSWORD";

$dateFormat = 'Ymd';

$before = date($dateFormat,strtotime('yesterday'));
$dateKey = date($dateFormat);
$delDate = date($dateFormat,strtotime('-7 days'));

$excludeDirs = [
	'cache1/*',
	'cache2/*',
];

system("ssh {$SOURCE_HOST} \"mysqlcheck --all-databases -u{$MYSQL_USERNAME} -p{$MYSQL_PASSWORD} -r\"");
system("ssh {$SOURCE_HOST} \"mysqldump -u {$MYSQL_USERNAME} -p{$MYSQL_PASSWORD} --lock-tables=false --all-databases  | gzip --rsyncable -f -c - > {$SOURCE_PATH}/backupdb/backup.sql.gz\"");

system("cp -al {$before} {$dateKey}");

$excludeStr = '';
foreach($excludeDirs as $dir){
        $excludeStr .= " --exclude '{$dir}'";
}

system("rsync -a --delete {$excludeStr} {$SOURCE_HOST}:{$SOURCE_PATH} {$dateKey}/");

if(!empty($delDate)){
system("rm -rf ./{$delDate}");
}

echo "COMPLETE";

อธิบายคำสั่ง

บรรทัดที่ 1 – 14 เป็นการตั้งค่าเครื่องเป้าหมาย ว่าจะ backup จาก host ใดและ path ใด ข้อมูลการเข้าถึง Database และจำนวนวันที่ backup ย้อนหลัง โดยสามารถตั้งวันที่ backup สูงสุดได้ในบรรทัดที่ 14

บรรทัดที่ 16-19 เป็นการตั้งค่าว่าจะไม่ backup file ใด้บ้าง เช่นพวก cache เราอาจจะไม่ backup เป็นต้น

บรรทัดที่ 21-22 เป็นการสั่ง backup ฐานข้อมูล ให้ออกมาเป็น file.sql

บรรทัดที่ 24 เป็นการสั่งคัดลอก folder เมื่อวาน แบบ Hardlink มาเป็นโฟลเดอร์วันที่ปัจจุบัน โดยการทำ Hardlink จะช่วยประหยักเนื้อที่ได้มากในกรณีที่ไม่เปลี่ยนแปลง เช่นถ้าเราสั่งคัดลอก a.zip ขนาด 1GB ไปเป็น b.zip แบบ Hardlink ขนาดที่จะถูกใช้บน Harddisk จะถูกใช้แค่ 1GB เท่านั้น ไม่ใช่ 2GB แบบปกติ เพราะไฟล์เก็บที่เดียวกัน (อ่านเพิ่มเติมได้ที่นี่)

บรรทัดที่ 26-29 เป็นการสร้าง exclude parameter หรือก็คือเอา บรรทัด 16-19 มาแปลงให้ rsync เข้าใจได้

บรรทัดที่ 31 เป็นการสั่ง rsync จากต้นฉบับมาโฟลเดอร์ปัจจุบัน โดยจะดึงเฉพาะไฟล์ที่มีการเปลี่ยนแปลงหลังจากเมื่อวานเท่านั้น ทำให้ Backup ได้อย่างรวดเร็ว

บรรทัดที่ 33-35 คือสั่งให้ลบโฟลเดอร์ backup ที่เกิน 7 วันทิ้ง

คำแนะนำอื่นๆ

อย่าใช้ script นี้ผ่าน http เพราะมันจะ timeout ให้ตั้ง cronjob เป็นประมาณ php backup.php

ในกรณที่ MySQL เราใช้แต่ InnoDB และไม่มี MyISAM สามารถเอาบรรทัดที่ 21 ออกได้ (บรรทัด mysqlcheck) เพราะ check ไปก็ทำไรไม่ได้ InnoDB ไม่ Support

ในบรรทัดที่ 22 เราจะเห็นว่ามี –lock-tables=false ซึ่งหมายถึงเราจะไม่ lock table ในการเขียน ซึ่งทำให้เว็บสามารถทำงานได้ปกติตอน dump ข้อมูลออก แต่ข้อมูลที่ได้อาจจะไม่ตรงกัน เช่น table a ถึก dump เสร็จแล้ว ในระหว่างที่ dump table b ออกมา มีการเขียนที่ table a และ c ซึ่ง table c ต้องใช้ข้อมูลจาก table a แบบนี้จตะเกิดปัญหาได้ เพราะ table c ที่ถูก dump มีข้อมูลบางอย่างที่ต้องพึ่ง table a แต่ตอน dump table a ตัว table a ยังไม่มีข้อมูลนั้น ทางแก้มี 2 แบบ

  1. ตั้ง –lock-tables=true
  2. ในกรณีที่มีแต่ InnoDB ให้ใช้ –single-transaction แทน

 

 

 

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 กัน