Category Archives: Blog

Google Cloud Platform Free Tier

Google recently provide the free tier on their Google Cloud Platform (GCP). The free tier will be free forever (but what Google offered are subjected to changes).

Also included in the free tier is $300 credit for 12 months (I think this was 2 months – good !)

I applied, created Google Compute Engine (GCE) f1-micro instance, ran the same benchmarks as I did on Vultr, DO, and Scaleway.

The best results I got from the instance:

dd write bs=4k count=10k  100k  1M
                    1500  39.6  37.5 MB/s
dd read bs=4k 
63.1 MB/s
sysbench --test=cpu --cpu-max-prime=10000 run
11.7567 sec.
stress-ng --cpu 1 --cpu-method all -t 30 
156.75 ops/sec
BUT …

The results were not consistent.  I ran the dd write 5 more times, the results varied from 211 MB/s to 1.5 GB/s. sysbench results varied from 11 to 13 sec. stress-ng varied between 50 – 150 ops/sec.

I think this is because almost all the resources for free tier (CPU, disk, network) are shared among others.

It’s free, though.

Vultr’s $2.5 / month server instance

Vultr has recently upgrade all instances . While $5/month has been upgraded from 1 CPU / 768 MB / 15 GB  to 1 CPU / 1 GB / 25 GB, Vultr also introduced the new smallest server instance – 1 CPU / 512 MB / 20 GB at $2.5/month.

So, I have choices:  keep paying $5/month and get an upgraded instance for free, or migrate to the $2.5/month to cut cost in half.

I chose the latter.

Unfortunately, Vultr does not allow to downgrade the instance (because disks can only be enlarged). So, I needed to migrate the server. I created a snapshot from the existing 15 GB disk, and deployed an $2.5/month instance from the snapshot. It took me about 10 minutes to create the snapshot (free), and few more minutes to deploy new instance. Then, I updated DNS record.

Things went well. So, finally, I destroyed the $5/month instance.

The result ?  You are seeing it right now. This web is running on single $2.5/month instance :D

กบ CoE #2

ผมกับกบ CoE#2 สนิทกันประมาณนึง ด้วยกบจบจากสาธิตมอดินแดง เป็นพี่โรงเรียนเดียวกับส้ม กบจะเรียกผมว่าพี่เสมอ ไม่เคยเรียกผมว่าอาจารย์

กบชอบเล่นเกม โค้ดเก่ง คิดเก่ง พลิกแพลงเก่ง

แต่ .. เรียนไม่เก่ง

กบใช้เวลาเรียนหลายปีกว่าจะจบด้วยเกรด 2.0 กว่า ๆ ด้วยความที่เรียนนาน เข้าคลาสเรียนกับน้อง ๆ เลยเป็นที่รู้จักของน้อง ๆ รุ่นหลังอีกหลายรุ่น

ถ้าจำไม่ผิดคน กบเข้าไปทำงานแรก ๆ ทำงานได้ดีโดยเจ้านายไม่รู้ว่าเกรดมันห่วย วันที่เจ้านายรู้ว่ากบจบด้วยเกรดห่วย ๆ จึงเกิดประโยคที่ว่า

“มี วศ.คอม.มข. เกรด 2.0 แบบคุณอีกไหม ?”

ผมเจอกบครั้งสุดท้ายหลายปีก่อน กบแวะมาที่ภาคฯ ถือเกมมาให้เล่น ก็ยังได้มานั่งเล่นเกมกันเหมือนสมัยอยู่ห้องโปรเจค

ตัดมาอีกทีก็มารู้ข่าวเรื่องอาการเนื้องอกในสมองของกบ

ช่วงปลายมกราฯ ที่ผ่านมา กบอาการทรุดลงไปอีก เพื่อน ๆ น้อง ๆ บางคนพอทราบก็ไปเยี่ยม/นัดกันว่าจะไปเยี่ยมที่บ้าน

เมื่อวาน น้องไปสบายแล้ว

ใจหายว่ะ

CPU overloaded by kidle_inject ?

As it’s named, kidle_inject is a process to inject idleness to processors.

On a good day, this will keep idle your processors, lower processor temperature, and save your battery.

On a bad day, it will consume your processor somewhat like 50%+ on all cores, slow down your laptop, and drain your battery.

But, you can control this. Many new Intel-based processors could use intel_pstate driver to manage processor power consumption. If you use intel_pstate, you can drop intel_powerclamp (which would run kidle_inject). help your laptop to consume less power.

Just

# modprobe -r intel_powerclamp

Or, consider to put

blacklist intel_powerclamp

in your /etc/modules (or modprobe)

YMMV.

Intel® Optimized LINPACK Benchmark on Debian and Ubuntu

Got a chance to grab 8 dedicated servers. All of them are identical configuration.

  • Intel Xeon E5-2660 2.20 GHz – 8 Core / 16 Threads
  • 16GB (DDR3) Memory
  • 240GB (SSD) Storage
  • 1 Gbps Network Port

And I put Debian on 2 of them and Ubuntu 2 of them. Since I use these servers for computation, I tested all of them  by running Intel LINPACK Benchmark.

The results:
Ubuntu 16.04.2 / Linux 4.4.0

Size   LDA    Align.  Average  Maximal
1000   1000   4       57.1781  63.1674
2000   2000   4       96.3596  99.1686
5000   5008   4       120.8776 121.0789
10000  10000  4       129.6896 129.7670
15000  15000  4       132.1119 132.1371
18000  18008  4       133.5032 133.6047
20000  20016  4       134.7515 134.7724
22000  22008  4       134.7769 134.8034
25000  25000  4       135.2187 135.2249
26000  26000  4       135.3471 135.3511
27000  27000  4       135.7265 135.7265
30000  30000  1       135.9339 135.9339
35000  35000  1       136.3998 136.3998
40000  40000  1       136.0928 136.0928
45000  45000  1       135.4024 135.4024

Ubuntu 16.10 / Linux 4.8.0

Size   LDA    Align.  Average  Maximal
1000   1000   4       67.6860  75.8030
2000   2000   4       97.1338  98.9928
5000   5008   4       120.8437 120.9400
10000  10000  4       129.5845 129.5925
15000  15000  4       132.0033 132.0423
18000  18008  4       133.5847 133.5954
20000  20016  4       134.7129 134.7186
22000  22008  4       134.7988 134.8389
25000  25000  4       135.1581 135.1615
26000  26000  4       135.2965 135.2966
27000  27000  4       135.7175 135.7175
30000  30000  1       135.8775 135.8775
35000  35000  1       136.3674 136.3674
40000  40000  1       136.0681 136.0681
45000  45000  1       135.6452 135.6452

Debian 8.7 / Linux 3.16.0

Size   LDA    Align.  Average  Maximal
1000   1000   4       57.1597  62.6083
2000   2000   4       87.6385  96.1681
5000   5008   4       115.0042 115.2121
10000  10000  4       120.6037 120.7413
15000  15000  4       126.8568 126.8810
18000  18008  4       128.2295 128.2299
20000  20016  4       128.9295 128.9335
22000  22008  4       129.7550 129.7679
25000  25000  4       130.2622 130.2687
26000  26000  4       130.4710 130.4769
27000  27000  4       130.1460 130.1460
30000  30000  1       131.0764 131.0764
35000  35000  1       131.8341 131.8341
40000  40000  1       131.7159 131.7159
45000  45000  1       131.6021 131.6021

Debian 8.7 / Linux 4.8.0

Size   LDA    Align.  Average  Maximal
1000   1000   4       73.9033  75.2857
2000   2000   4       96.1756  98.1587
5000   5008   4       114.9453 115.1133
10000  10000  4       120.6623 120.6715
15000  15000  4       126.8516 126.8579
18000  18008  4       128.1927 128.1953
20000  20016  4       128.9059 128.9097
22000  22008  4       129.7727 129.8013
25000  25000  4       130.2268 130.2318
26000  26000  4       130.4389 130.4403
27000  27000  4       130.1010 130.1010
30000  30000  1       131.1211 131.1211
35000  35000  1       131.8388 131.8388
40000  40000  1       131.7462 131.7462
45000  45000  1       131.6341 131.6341

Now,  can anyone tell me why Debian is slower ? .. hmm

เรามาเป็นแอดมินได้ไง

tl;dr ไม่รู้เหมือนกัน 55+

ปี 3 วิชา Computer Networks สอน TCP/IP (อ.ยืน อ.เขมทัต อ.ปรีดา ม.เกษตร) ประกอบกับที่ภาคคอมคณะไรสักอย่างได้รับเครื่อง SUN SPARCStation 5 มาจากมูลนิธิ Hitachi เครื่องนี้ต่ออินเทอร์เน็ตผ่าน MODEM + leased line ไปที่ศูนย์คอมพิวเตอร์ ผมกับเพื่อนไม่กี่คนมี account บนเครื่องนี้ telnet จาก PC ไปหัดใช้คำสั่ง UNIX ใช้อินเทอร์เน็ตได้ (pine, talk, gopher, inn, irc (#thai #siam …)) .. ตอนนั้นเป็นของใหม่ ของแพง(มาก) มีโอกาสได้ใช้ก็ตื่นตาตื่นใจ

ปี 4 เพื่อนคนนึงทำโปรเจคเกี่ยวกับอินเทอร์เน็ต ขอเครื่อง 486 มาลง BSD ได้แผ่นติดตั้ง 3.5 นิ้วมาจากอาจารย์ฝรั่งที่มาบวชที่ขอนแก่น อ.ฝรั่งท่านนี้เก่ง ใจดี ให้คำแนะนำเรื่อง UNIX เยอะแยะ (อาชีพเพิ่นจริงๆ คือออกแบบวงจรเครื่องเสียง – มีชื่อเสียงด้วยนะ) หลังจากได้แผ่น BSD มาหลายกล่องได้ไม่นาน มันกลายเป็นแผ่นติดตั้ง Slackware Linux แทน 555+ .. Slackware ตอนนั้นใช้ แผ่น 3.5 นิ้ว 1.44 MB จำนวน ~ 30 แผ่น ดาวน์โหลดผ่านอินเทอร์เน็ตได้วันละ 1 แผ่น เดือนต่อมาถึงได้ติดตั้งลงเครื่องเป็น linux kernel 1.0.x ต่ออินเทอร์เน็ตผ่าน MODEM อยู่ห้องโปรเจคภาคฯ ไปศูนย์คอมพิวเตอร์ เครื่องนี้เป็น linux 1 ใน 2 เครื่องแรกของ มข. (อีกเครื่องเป็นของอาจารย์ อยู่ภาคชีวเคมี เกิดในเวลาใกล้ๆ กัน) และตั้งชื่อว่า gear.kku.ac.th

ช่วงนี้ผมกับเพื่อนเริ่มเดินเข้า/ออกศูนย์คอมพิวเตอร์หาพี่พงษ์บ่อยๆ จนมี account บน kku1.kku.ac.th (SUN) และอีกหลายเครื่อง (SUN) ช่วยเพื่อนติดตั้ง/admin ftp.kku.ac.th / malakor.kku.ac.th พ่วง MODEM ทำ slirp/tia ให้คอมพิวเตอร์ที่บ้านรัน Windows 3.1 + Trumpet Winsock ต่อใช้อินเทอร์เน็ตได้โดยหมุน MODEM มาที่ศูนย์คอมฯ

ต้องระลึกชาติกันว่า ปี 2537 นี่เพิ่งจะมีอินเทอร์เน็ตในประเทศได้ไม่กี่ปี / ThaiSARN เพิ่งเกิดไม่นาน / ISP ในประเทศไทยยังไม่มีบริการตามบ้าน / มข. ต่ออินเทอร์เน็ตแถวๆ 9.6 – 19.2 – 64 kbps / Trumpet Winsock ตอนนั้นเกือบทั้งหมดใช้กับ Ethernet / MODEM มีไว้ต่อ terminal หรือ BBS .. หมุน MODEM ต่ออินเทอร์เน็ตเปิด Mosaic/Netscape เข้าเว็บจากเครื่องที่บ้านได้นี่โคตร breakthrough .. คิดเข้าข้างตัวเองว่า เวลานั้นเป็นคนแรกใน มข. ที่ทำได้ 555+

พอมีทักษะโปรแกรม + UNIX + network + security ทำเอามันบ่อยๆ สันดาน hacking/troubleshooting ใน domain นี้ก็สะสมมาเรื่อย
จบ ป.ตรี บรรจุเป็นอาจารย์ (ใช้หนี้ทุน) ดูแลเครื่อง gear.kku.ac.th ต่อจากเพื่อน กลายเป็นเครื่องแม่ข่ายอินเทอร์เน็ตหลักของภาคคอมแทน SUN + ติดตั้งเครื่องเพิ่มอีกหลายเครื่องที่เป็น linux ให้ นศ. ใช้ เป็นช่วงนี้ web กำลังนิยม ก็หัดทำเว็บเขียนเว็บ Netscape กำลังได้รับความนิยม ก็ดูดมาพักไว้ที่ มข. เป็น Netscape Official Mirror Site แห่งแรกในประเทศไทย ประกอบกับที่ภาคคอมฯ เป็นชุมสาย campus network ของคณะไรสักอย่าง สอนวิชา networks ด้วย มีโอกาสได้ดูแลระบบเครือข่ายไปด้วย

ช่วงเรียนต่อ มีโอกาสดูแลระบบของ lab ได้อานิสงส์จากบารมีของอาจารย์ที่ปรึกษา (ที่เพิ่งจะได้รางวัล Jonathan B. Postel Service Award ของปีนี้) ได้พบบุคคลในตำนานอินเทอร์เน็ตโลกอีกหลายคน มีโอกาสไป workshop เป็นลูกมือจัด workshop พบ sysadmin เก่งๆ geekๆ nerdๆ หลายคน

.. และบางคนก็กวนตีน เช่น sysadmin ชาวญี่ปุ่น เป็นคนดูระบบเมลของ ISP ใหญ่ที่สุดแห่งนึงในญี่ปุ่น อยากได้อะไรมันเขียน sendmail.cf from scratch ได้หมด (ย้ำว่า .cf – human-unreadable config – from scratch) อยู่มาวันหนึ่งมันบอกว่า “กูย้ายไปใช้ postfix หมดแล้วนะ ชีวิตดี๊ดี มึงจะตามมาไหม ?” เอ้า! บักนี่ ! 55+

งานตอนนี้ ใช้ทุกอย่างที่สะสมมาตั้งแต่บรรทัดแรก (^^’)

เรามาเขียนโค้ดได้ไง

ปี 2529 อยู่ ม.2 ไม่เคยเล่นเกม ไม่เคยใช้โปรแกรมสำเร็จรูป แตะคอมพิวเตอร์ครั้งแรกก็หัดโค้ดเลย

มันคือเครื่อง VTech Laser 200 (https://en.wikipedia.org/wiki/VTech_Laser_200)

ROM เป็น BASIC interpreter สมัยนั้นเรียกของพวกนี้ว่า home computer ก็ไม่แน่ใจว่าเครื่องนี้เป็นของใคร แต่มันวางอยู่ที่บ้านที่ไปอาศัยอยู่ช่วงนั้น หัดจากคู่มือของเครื่อง (ภาษาอังกฤษ) หนังสือตัวอย่างโปรแกรมที่แถมมา จนเขียน BASIC เป็น

ม.ปลาย ที่โรงเรียนสอนภาษา Logo .. ช่วงนั้นมีเครื่อง PC ที่บ้านแล้ว รับจ้างเขียนโปรแกรม พิมพ์รายงาน

ป.ตรี รับจ้างเขียน inventory ให้ รพ.ศรีนครินทร์ (Clipper/Netware) โปรเจคจบเขียน C/C++ เป็นโปรแกรมบน Windows

ป.โท ระหว่างเรียนเขียน C, C++, CLIPS, LISP, Prolog, OCaml, Smalltalk, YACC, Lex, Java

ป.เอก เข้ารีต F/OSS ทำ packages ให้ LinuxTLE เขียนตาม upstream ใช้ภาษาไหนก็โค้ดภาษานั้น coding style แบบไหนก็ต้องตามนั้น เพลินมากจนเกือบเรียนไม่จบ 555+

อืม .. เดี๋ยวนะ ผมอยู่สาย sysadmin/ops มาตั้งแต่เรียน ป.ตรี นะหนิ (^^)a