Archive for July, 2010

0104 | ปุ่มอัพโหลดรูปเข้า upic.me ด่วนทันใจ

Sunday, July 11th, 2010 Posted in PHP Coding, Web Server | 128 Comments »

คุณสมบัติ

– upload รูปได้ทุก format ที่ upic.me รองรับ ขนาดใหญ่ได้ถึง 2MB
– เลือกอัพได้ทีละหลายๆ รูปเหมือนหน้าแรก upic.me ด้วย
– มีสถานะการ upload ขึ้นตลอดการอัพ และจะหายไปเองเมื่ออัพเสร็จ
– อัพเสร็จ code ขึ้นในกล่องข้อความทันที ไม่ต้องก๊อปวาง
– ปรับแต่งหน้าตา สีสันของปุ่มได้ตามสะดวก (ส่วนแก้ไขข้อความ จะทำ version ถัดไปครับ)
– เอาไปใช้กันได้ฟรีๆ ไม่ต้องแปะ link กลับ ไม่ต้องแปะเครดิตใดๆ ทั้งสิ้น
– ไม่เปลือง bandwidth ของ host ด้วย เพราะอัพตรงเข้ามาที่ server ของ upic.me เลย

ถ้างงยังไงลองดูตัวอย่าง code ด้านล่างได้เลยครับ

<script type="text/javascript" src="http://upic.me/js/embedupload.js"></script>
<script type="text/javascript">
upic_target = "targetelement";
upic_type = "resulttype";
upic_buttoncss += "appendcss";
</script>

upic_target => จะให้เอา code ไปแปะที่ช่องไหน
upic_type => รูปแบบ code ที่แปะ มี htmlfull / htmlthumb / bbfull / bbthumb (ถ้าไม่ระบุ จะถือว่าเป็น bbthumb ครับ)
upic_buttoncss => css เสริมสำหรับข้อความในปุ่ม เผื่ออยากแก้สีแก้รูปแบบ ใส่ไปได้เลยครับ (การใส่สี รองรับ code แบบ #abcdef เท่านั้นนะครับ)

ส่วน uploadprogress จะมีประมาณนี้ครับ

<style type="text/css">
#upic_uploader{}
#upic_uploadprogress{}
.progressWrapper{margin-top:5px;}
.progressContainer{border-bottom:1px dotted #ddd;padding:2px;}
.progressName{text-align:left;color:black;margin-left:2px;float:left;}
.progressBarStatus{color:#666;text-align:right;margin:1px 1px 0 0;font-size:9px;}
.red{border:solid 1px #B50000;background-color:#FFEBEB;}
.green{border:solid 1px #DDF0DD;background-color:#EBFFEB;}
.blue{border:solid 1px #CEE2F2;background-color:#F0F5FF;}
.progressBarInProgress,.progressBarComplete,.progressBarError{clear:both;font-size:0;width:0%;height:2px;background-color:blue;margin-top:4px;}
.progressBarComplete{width:100%;background-color:green;visibility:hidden;}
.progressBarError{width:100%;background-color:red;visibility:hidden;}
</style>

(พอดีมันผ่าน compressor มาหลายรอบ code เลยดูยากหน่อย ขออภัยด้วยครับ)
ถ้าอยากแก้ไขหน้าตาสีสันยังไง สามารถ copy code ด้านบนไปแก้ไข แล้วใส่ต่อจาก script ได้เลยครับ

Read the rest of this entry »

Tags: , ,

0103 | top – Linux Administrative Tools

Friday, July 9th, 2010 Posted in Linux | 3 Comments »

เอามาลง blog ตัวเองซักที…

” top “


(capture ช้าไปสองวิ เสียดายจัง)

ไม่ต้องลงเพิ่ม ติดมากับ os อยู่แล้วไม่ว่าจะลงแบบ minimal ขนาดไหน
หรือถ้าทำหายไป มันจะอยู่ใน package “procps” ครับ

มันบอกอะไรบ้าง
ไล่ทีละบรรทัด เลยนะครับ (คิดจากค่าปกติของ centos ซึ่ง os อื่นๆ ก็คล้ายๆ กัน อาจมีแตกต่างบ้างแล้วแต่การปรับตั้งค่า)

บรรทัดบนสุด
top – 09:13:20 up 187 days,  8:401 userload average: 0.43, 0.66, 0.61
สีแดง: เวลาปัจจุบันของ server
สีเขียว: uptime (ระยะเวลาตั้งแต่ boot OS ขึ้นมา)
สีม่วง: จำนวน user ที่ login เข้าไปใน shell (การ login หน้าเครื่อง + ssh ที่เปิด terminal เท่านั้น)
สีน้ำเงิน: load average : ปริมาณงานที่ “ค้าง” ในระบบเฉลี่ย ในรอบ 1 , 5 และ 15 นาทีตามลำดับ

บรรทัดที่ 2: บรรทัดนี้จะบอกข้อมูลเกี่ยวกับ process ในเครื่องครับ
Tasks: 183 total,   3 running, 180 sleeping,   0 stopped,   0 zombie
สีแดง: จำนวน process ทั้งหมด
สีเขียว: จำนวน process ที่กำลังเรียกใช้ CPU อยู่ “ณ เวลานั้นๆ”
สีม่วง: จำนวน process ที่ไม่มีการทำงาน/ไม่มีการเรียกใช้ CPU อยู่
สีน้ำเงิน: process ที่อยู่ในสถานะ “หยุด” (ไอนี้ไม่แน่ใจครับ คู่มือมันเขียนแบบนั้นแต่ผมไม่เคยเห็นตัวเลขขึ้นซักที)
สีชมพู: process ผีดิบ lol มันคือ process ที่ตาย/จบการทำงานไปแล้ว แต่ยังไม่สามารถ clear ออกจากหน่วยความจำได้ ส่วนมากจะเป็นพวก process ที่รอการตอบสนองจาก hardware ต่างๆ อยู่ครับ (รวมถึงแรมด้วย)

บรรทัดที่ 3: การใช้งาน CPU อันนี้มีของเล่นนิดหน่อยครับ สำหรับเครื่องที่ cpu หลาย core หรือหลาย cpu
Cpu(s):  4.0%us,  0.7%sy,  0.0%ni, 94.1%id,  0.9%wa,  0.0%hi,  0.3%si,  0.0%st

สังเกต ดีๆ มันจะเขียนหน้าบรรทัดว่า Cpu(s) <– ตรง (s) หมายความว่าเป็นภาพรวม cpu ทุก core
ให้กดแป้นพิมพ์เลข 1 ตรงแป้นพิมพ์ธรรมดา ที่อยู่ข้างๆ ปุ่มตัวหนอน (` / ~) แล้วมันจะแตกออกมาเป็นแบบนี้ครับ

Cpu0  : 27.6%us,  7.2%sy,  0.2%ni, 53.6%id, 10.9%wa,  0.0%hi,  0.5%si,  0.0%st
Cpu1  : 28.1%us,  7.2%sy,  0.1%ni, 55.3%id,  9.0%wa,  0.0%hi,  0.4%si,  0.0%st
Cpu2  : 27.8%us,  7.0%sy,  0.2%ni, 62.0%id,  2.8%wa,  0.0%hi,  0.2%si,  0.0%st
Cpu3  : 28.1%us,  7.3%sy,  0.2%ni, 58.8%id,  3.4%wa,  0.2%hi,  2.1%si,  0.0%st

แยกกันให้เห็นหมดเลย ว่า CPU ไหนกำลังทำอะไรอยู่
ทีนี้ แต่ละ column ที่มีตัวอักษรย่อสองตัว มีความหมายต่างกันตามนี้ครับ

us => user :: เป็นการเรียกใช้ CPU ตามปกติของโปรแกรม ที่เป็นการประมวลผลภายในโปรแกรมนั้นๆ
sy => system :: การเรียกใช้คำสั่งในระดับ kernel ที่มีการประมวลผลอยู่ภายใน kernel โดยไม่เรียกใช้ hardware
ni => nice :: การจัดลำดับความสำคัญของการประมวลผล (priority) ไว้สลับการทำงานของ process ที่มี priority ต่างๆ กันเวลาเรียกใช้ cpu พร้อมๆ กัน
id => idle :: cpu ที่ว่างงาน
wa => iowait :: เป็นการ ‘เสีย เวลารอ’ การเรียกใช้ และติดต่อกับ hardware ตั้งแต่ harddisk ram การ์ดจอ การ์ดแลน (แต่ส่วนใหญ่ก็ harddisk แหละ)
hi => ?
si => ? (สามอันนี้ขออภัยด้วยครับ ไม่ทราบจริงๆ ส่วนมากก็ไม่ค่อยขึ้นมาให้เห็นเท่าไหร่ด้วย)
st => ?

บรรทัดที่ 4-5: เกี่ยวกับหน่วยความจำ ขอรวบเป็นหัวข้อเดียวเลยนะครับ เพราะมันเกี่ยวข้องกัน
Mem:   8310380k total4970936k used3339444k free,   217448k buffers
Swap:  6225904k total,    52816k used6173088k free,  3001860k cached
สีแดง: RAM ทั้งหมดที่ติดตั้งไว้ และ OS มองเห็น (หมายถึงหน่วยความจำหลักอย่างเดียวครับ)
สีชมพู: ใช้แรมไปแล้ว “ทั้งหมด” เท่าไหร่
สีเขียว: แรมที่ยังว่างจริงๆ (คือไม่ได้จองให้กับอะไรเลย)
สีส้ม: แรมที่ถูกใช้เป็น buffer ที่พักข้อมูลก่อนที่จะมีการอ่าน/เขียนลง harddisk หรือ CPU
สีม่วง: swap space พื้นที่แรมเสมือนทั้งหมด ที่ใช้พื้นที่จาก harddisk เก็บข้อมูลแทนแรม — บน windows มันจะมีชื่อว่า pagefile
สีน้ำเงิน: ปริมาณการใช้งาน swap space มากน้อยไม่ใช่ปัญหาเท่าไหร่ (ถึงมันจะไม่ควรใช้ก็ตาม) แต่ถ้าตัวเลขแกว่งไปมา (พร้อมกับ iowait พุ่ง) หมายความว่ามีปัญหาแรมไม่พอจนต้องมาเขียนลง swap space
สีน้ำตาล: พื้นที่ swap space ที่ไม่ได้ใช้งาน
สีดำ: เป็น file system memory cache ครับ คือ linux จะมีการใช้ ram เพื่อเก็บข้อมูลไฟล์ที่มีการเรียกใช้งานบ่อยๆ ไว้ใน ram (เผื่อมีอะไรก็อ่านเอาจากแรมไปเลย เร็วกว่าเยอะ)

วิธีคิดพื้นที่ แรมว่าง ให้คิดจาก free + cached ไม่นับพื้นที่ cache เป็นพื้นที่ที่มีการใช้งาน
เพราะมันจะถูกลบออกได้เสมอถ้ามีความต้องการ ใช้แรมจาก process เยอะๆ

ส่วนพื้นที่ที่เหลือด้านล่าง จะเป็นรายการ process ทั้งหมด (แสดงเท่าที่พื้นที่จอเหลือ)
เรียงลำดับ ตามปริมาณการใช้งาน CPU ของ process นั้นๆ (เปลี่ยนได้ครับ)

มีหัว ข้อตามนี้
PID : หมายเลข process id
USER : user ที่ process ทำงาน
PR : priority ของ process ที่ nice เท่ากัน
NI : รหัส nice เรียงความสำคัญของ process (ยิ่งน้อยยิ่งสำคัญ)
VIRT : ปริมาณการใช้งาน virtual image ทั้งหมด (ตั้งแต่ process ยันเตไปถึงการเรียก library)
RES / SHR : การใช้แรมส่วนของ private (เฉพาะภายใน app) / shared (ram กลางของระบบ)
S : สถานะของ process
%CPU : ปริมาณการใช้งาน CPU (นับต่อ core นะครับ) สมมติ cpu 4 core + process รัน 4 thread แต่ละ thread เรียกใช้ cpu เต็มที่ มันก็ขึ้น 400 ขึ้นมาได้เหมือนกัน
%MEM : ปริมาณการใช้งาน ram เป็น %
TIME+ : “ระยะเวลา” ที่เรียกใช้ CPU ทั้งหมดตั้งแต่รัน process (เพราะ process ไม่ได้ทำงานตลอดเวลา)
COMMAND : คำสั่งที่ใช้รัน process

ลูก เล่นเพิ่มเติมของ top สามารถหาอ่านได้จากคำสั่ง man top นะครับ
มีอีก เพียบ นี่แค่แซมเปิ้ลๆ

Tags: , ,