0011 | กันและกัน - icez

เมื่อวานนึกครึ้มอกครึ้มใจอัดเสียงตัวเองร้องเพลงเล่น
เก๊าะเลยเอามาประจานตัวเองซะเลย ฮาๆ

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

เธอคงเคยได้ยินเพลงรักมานับร้อยพัน
มันอาจจะโดนใจ แต่ก็มีความหมายเหมือนๆ กัน
แต่ถ้าเธอ ฟังเพลงนี้ เพลงที่เขียนเพื่อเธอเท่านั้น
เผื่อเธอเข้าใจความหมาย แล้วใจจะได้มีกันและกัน

ให้มันเป็นเพลง บนทางเดินเคียง ที่จะมีเพียงเสียงเธอกับฉัน
อยู่ด้วยกันตราบนานนาน…
ดั่งในใจความบอกในกวี ว่าตราบใดที่มีรักย่อมมีหวัง
คือทุกครั้งที่รักของเธอส่องใจฉันมีปลายทาง

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

ให้มันเป็นเพลง บนทางเดินเคียง ที่จะมีเพียงเสียงเธอกับฉัน
อยู่ด้วยกันตราบนานนาน
ดั่งในใจความบอกในกวี ว่าตราบใดที่มีรักย่อมมีหวัง
คือทุกครั้งที่รักของเธอส่องใจ ฉันมีปลายทาง

มีทางเดินให้เราเดินเคียง และมีเสียงของเธอกับฉัน
มีทางเดินให้เราเดินร่วมเคียง และมีเสียงของเธอกับฉัน….

Tags: ,

0010 | MySQL Memory Engine

ก่อนอื่นขอรายงานสถานการณ์+บ่นซะก่อน แง่มๆ
วันที่ 7 ตอน 22.00 น. ไฟฟ้าใช้ได้ตามปกติแล้วครับ
แล้วก็… aircard กลับมาใช้ได้ตามปกติแล้ว เย้ๆๆ
เซ็งแทบตาย ต้องไปจิ้มสายเน็ตเพื่อนใช้อยู่ แล้วมันเร็ว
เอ้ย แล้วมันต้องเกรงใจอะ น่าเบื่อที่สุด ทำอะไรไม่สะใจเลย

กลับเข้าเรื่องกันดีกว่า
วันนี้จะมาว่าด้วย MySQL Memory Engine ครับ

Memory Engine เป็นรูปแบบตารางของ MySQL แบบหนึ่ง
ซึ่งมีโครงสร้างคล้ายๆ กับ MyISAM บ้าง นิดๆ หน่อยๆ
เพียงแต่แทนที่จะเก็บไว้เป็นไฟล์ .MYD ไว้บนเครื่อง ก็เปลี่ยนมาเป็น
เก็บลง shared memory ของ master process แทน
แน่นอนครับ ผลลัพท์ที่ได้มันก็มาจากความเร็วของ RAM ที่ท่านใช้
ว่ามันจะเร็วได้แค่ไหน ซึ่งปกติ ประสิทธิภาพความเร็วที่ทำได้จะอยู่ราวๆ 50-150 เท่าของ MyISAM ครับ

อ๊ะๆ เห็นมันเร็วกันบ้าพลังขนาดนี้นี่ อย่ามาคิดเชียวว่าทำไมไม่เก็บไว้ใน Memory ให้หมด
สาเหตุมันก็เพราะปัจจัยตามนี้ครับ

  1. เครื่องมีแรมเท่าไหร่ มันก็เก็บได้ไม่เกิน 1/2 ของแรมนั่นแหละครับ
  2. ใช้ field ประเภท text/blob ทุกชนิดไม่ได้ (ใช้ varchar ได้อยู่นะครับ)
  3. restart mysql ปุ๊ป ข้อมูลหายเรียบ (ก็มันเก็บในแรมนี่)
  4. เปลืองพื้นที่มากกว่า MyISAM เยอะ (ตาราง MyISAM ขนาด 10 MB เวลาแปลงเป็น Memory จะใช้แรมประมาณ 40 MB)
  5. ต้อง allocate memory เป็น block แต่ละ block ขนาดประมาณ 4-8 MB (เอาเป็นว่าหารเลขฐานสองลงตัวอะ)

ว่าแต่ร่ายซะเสียเลยแฮะเรา (ฮาๆ)
เอาเป็นว่า เนื่องด้วยเหตุผลข้อ 3 ทำให้เราไม่สามารถเก็บข้อมูลลงใน Memory Engine ได้ถาวรแน่นอนครับ
ดังนั้น ตารางแบบนี้เหมาะสำหรับเก็บค่า “ชั่วคราว” มากกว่า
เช่นพวกสถิติ user online, session ของเว็บไซต์ อะไรพวกนี้
ซึ่งวิธีแปลงก็ง่ายๆ ครับ

ALTER TABLE table ENGINE=Memory;

แค่นี้เอง สั้นๆ ง่ายๆ ได้ใจความ
รูปแบบการใช้งานที่เหมาะสม (และผมใช้อยู่ปัจจุบัน)คือ ตาราง peers ของเว็บ bittorrent ครับ
reset ไปมันก็เข้าใหม่ได้ ไม่มีปัญหาอะไรมาก แถมตารางนี้ access หนักมาก ถี่ยิบๆ
ก็เลยเหมาะต่อการใช้ Memory Engine ที่สุดเลย

รองลงมาก็คือ download session ของเว็บฝากไฟล์
พวกนี้ปล่อยๆ มันได้ครับ ใช้ไม่่ค่อยเยอะหรอก

ทีนี้ ปัญหาที่จะเจอคือ Error ต่อไปนี้

The table ‘table‘ is full

ทั้งนี้เนื่องมาจาก MySQL มีการกำหนดขนาดสูงสุดของตารางประเภท Memory ไว้ครับ
ว่า 1 ตารางสามารถจุข้อมูลได้ทั้งหมดกี่ MB ใน variable ที่ชื่อ max_heap_table_size ครับ
โดยค่าปกติของ MySQL 5.0 คือ 16 MB
อยากให้มันใหญ่ได้เท่าไหร่ก็ใส่ไปโลด /etc/my.cnf ในส่วนของ mysqld สั้นๆ ง่ายๆ ครับ

จบและ คราวหน้าถ้าไม่ลืมจะมาพูดถึง MySQL Indexes ครับ

Tags: , ,

0009 | ไฟดับ

ไฟดับมา 12 ชั่วโมงแล้วครับ ตั้งแต่ 4 ทุ่มเมื่อวาน
พื้นที่จังหวัดนราธิวาสประมาณ 90% ดับเรียบเลย
ตอนนี้พื้นที่อำเภอเมือง มีการดึงไฟฟ้าชั่วคราวมาจากปัตตานี
มาจ่ายให้เฉพาะจุดที่สำคัญๆ ก่อน เช่นโรงพยาบาล
หรือสถานที่ฉุกเฉินต่างๆ
มีประกาศห้ามไม่ให้เปิดไฟโดยเด็ดขาดถ้าไม่จำเป็นถึงตายจริงๆ
เนื่องจากไฟฟ้าที่ดึงมามีปริมาณเพียงไม่กี่เปอร์เซ็นต์ของความต้องการปกติ

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

อยู่ อ.สุไหงโก-ลกครับ
ไฟฟ้าที่ดึงมาเข้าแค่ อ.เมือง = =’ ที่บ้านมืดสนิท
ยังดีไม่ร้อนมาก เพราะมีซุ้มต้นไม้เย็นๆ นอกบ้าน
แล้วก็มี inverter + แบตฯ สำรองฉุกเฉินอยู่
คงใช้ได้ประมาณครึ่งวันมั้ง
ตอนนี้เล่นเน็ตผ่านมือถือครับ AIS เป็นค่ายเดียวที่ยังคงมีสัญญาณ
DTAC / Truemove ดับหมดแล้ว เนื่องจากแบตสำรองหมด
แม้แต่ชุมสายโทรศัพท์ของ TOT ก็ดับไปแล้ว :08a: ไม่รู้ AIS จะเล่นได้อีกนานแค่ไหน
ท่าทางคราวนี้ 2 วันชัวร์ครับ ฮือๆๆ

Tags: ,

0008 | Final Score ภาค 3

อ้างอิงจาก Entry ที่แล้ว (เตรียมรับมือประกาศผล admission)

และแล้วก็ผ่านพ้นกันไปเป็นที่เรียบร้อยสำหรับการประกาศผล admission 2551
ซึ่งผมก็ได้ไปร่วม ในฐานะเบื้องหลังของเว็บไซต์ http://admissions.bodinzone.com/ (อีกครั้ง)

สรุปคร่าวๆ ก็…
งานนี้ทีแรกนึกว่าจะหินมากกว่านี้ครับ
แต่เจอเข้าไป “แค่” 20 คำร้องต่อวินาที
(ย้ำว่าไอ้ 20 req/sec นี่ “แค่” จริงๆ สำหรับผม)

มาดูสถิติกันดีกว่าครับ
กราฟ CPU ไม่มีอะไรเปลี่ยนแปลง ขี้เกียจ cap ขอผ่านละกัน
เอาที่น่าสนใจหน่อย

กราฟ connection คงค้างในเซิฟเวอร์ครับ
ตั้งแต่เริ่มประกาศ คือก่อนเวลาประมาณ 18.00 น. นิดหน่อย มาจนถึงปัจจุบัน
ก็ยังมีการเรียกใช้งานอยู่เรื่อยๆ เห็นได้จากที่มีกราฟพุ่งปรี๊ดไปพอประมาณ

สรุปเทคนิค optimize ที่ใช้

  1. DNS Round Robin
  2. MySQL Indexes
  3. MySQL Memory Engine

เอาไว้เดี๋ยวค่อยเขียนรายละเอียดของข้อ 2-3 ละกัน
จะได้ดูแล้วมีเนื้อหาเยอะๆ หน่อย blog นี้ (ฮา)

ว่าแต่ น้องๆ ทุกคนเป็นไงกันมั่งครับ
หวังว่าคงได้คณะที่อยากได้กันนะครับ ^^

Tags: , , , , ,