ฟอนต์ฟอรั่ม

F0NT Community (เก่า) => ห้องคอม => หิ้งคอม => โพสต์ถูกเริ่มโดย: ลุงซัน เมื่อ 16 ก.ค. 2008, 20:50 น.

ชื่อเรื่อง: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 16 ก.ค. 2008, 20:50 น.
เดิมว่าจะตั้งชื่อ "ทำอย่างไร server ไม่ล่ม" แต่จริงๆอย่างไรก็มีโอกาส(ล่ม)
อยากตั้งชื่อให้ตรงกับภาษาอังกฤษว่า "High Available System" หรือ "High Availability",ผมยังนึกชื่อเทห์ๆยังไม่ได้
บทความคงเน้นเรื่องแนวคิด(concept)ยังไม่ลงลึกถึงเรื่องทางเทคนิค(ถ้าหนังสือขายได้ อาจมีเล่ม 2-3)
ระบบจะเน้นที่ windows+IIS+ASP.NET+MSSQL และ LAMP(Linux+Apache+MySQL+Perl/PHP)
หัวข้อที่คิดได้ตอนนี้(เพิ่มเติมได้นะครับ)
1.บทนำ
-จุดประสงค์หลักของการออกแบบระบบให้ทำงานได้อย่างราบรื่นก็คือต้องการให้ระบบทำงานไปถึงจุดหมายสูงสุดคือระดับ 99.999% ซึ่งมักถูกเรียกว่า "five nines" ซึ่งหมายถึงระบบ down ได้ 5.26 min ใน 1 ปี
2.Web Server and Scripts
  - IIS,Apache,lighttpd,LiteSpeed,nginx,Yaws
3.Web Site Optimize
- Rule of Fast Web and Optimize (JavaScript ,YSlow,Minimize CSS, JS and PNG,Gzip)
4. แนวคิดการเขียนโปรแกรมแบบ High Available
  - Message Queuing(MQSeries,MSMQ,ActiveMQ,RabbitMQ,beanstalkd,gearman,starling)
  - Session Management
  - Hibernate
  - SOA
  - RESTful (Apache CouchDB,Amazon's Simple Storage Service,Yahoo,eBay,Flickr,Del.icio.us,Facebook,Google GData/Picasa)
  - Template(smarty..etc)
5.แนวคิดการทำ Caching
  - Page Caching
  - MemCached
  - Query Cache
  - Script Cache (PHP Cache/APC/eAccelerator,Python/django/MintCache)
  - Content Cache(Varnish, Squid)
6.แนวคิด High Available Database
  - Partition/Shard,View
  - Store Procedure,Profiler
  - Replication
  - Distribute Database (Distribute Query)
  - Tunning
  - hypertable,BigTable,Hadoop
7. แนวคิดเรื่องการแบ่งภาระกันทำงาน
  - Scale Up,Scale Out
  - Load Balancing ,NLB,CLB,HAproxy,pound
  - Clustering,Fail Over,Heartbeat
  - Virtual Server
  - P2P,Grid/Cloud Computing
8.แนวคิด High Available Storage
   - SATA,SCSI,iSCSI,SAS
   - RAID 0,1,5,6
   - NAS,SAN
   - distributed filesystem(NFS,mogilefs..)
9.Performance Testing/Capacity Plan
   - Load Runner,ACT,WebLoad,Httperf
   - PHPunit,DBunit,strace, dtrace, ltrace
   - Capacity Plan (RRDtoo,Munin)
   - (Not "how fast" but "how many", Test "force", not speed,Test scalability, not just "performance")
   - System Monitor (Hyperic,Ganglia)
10. Hardware/Network และ OS
   -แนวคิดเรื่อง Datacenter and High Available Network
   - Hotswap,chipkill ..etc
   - CentOS
   - Content Delivery Network(Akamai, LimeLight, PantherExpress, CacheFly..)
   - Netwok Appliance
11.แนวคิด Backup & Recovery,Disaster Recovery,Security
12. กรณีศึกษา(มาดูว่าระบบจริงๆเขาทำอย่างไร)
  - LiveJournal ผู้ให้กำเนิด memcached
    มีสมาชิกมากกว่า 10 ล้าน ต้องรองรับการเข้าใช้อย่างน้อยเป็นพัน hits/วินาที
    LiveJournal มักเป็นกรณีศึกษาสำหรับการทำ High Availability
  - google
     bigtable,MapReduce  ..
  - hotmail(การย้าย hotmail จาก BSD ไป Exchange)
  - youtube
  - ebay
  - flickr
  - Amazon
  - Twitter
  - Wikimedia
  - Slashdot
  - FeedBurner
  - MySpace
  - Friendster

ผมลองๆเขียนหัวข้อดูครับ ถ้ามีอะไรตกหล่น ก็เสนอแนะได้นะครับ (ตอนนี้นึกได้แค่นี้ อาจมีตกหล่น)
จะลองพยายามเขียนเป็นตอนๆก่อนนะครับ

ืnote: เดิมตั้งใจจะไปที่หิ้งคอม แต่ตั้งกระทู้ใหม่ไม่ได้
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานได้อย่าง
โพสต์โดย: Earthchie เมื่อ 16 ก.ค. 2008, 21:27 น.
มารออ่านครับ

ขอบคุณล่วงหน้าครับ
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานได้อย่าง
โพสต์โดย: iannnnn เมื่อ 16 ก.ค. 2008, 21:32 น.
โอ้โห อาจารย์เปิดสอนอีกแล้ว :46:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานได้อย่าง
โพสต์โดย: poloh เมื่อ 16 ก.ค. 2008, 22:31 น.
ขอบคุณครับ :22:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานได้อย่าง
โพสต์โดย: ☼ แอนมินิ ☼ เมื่อ 16 ก.ค. 2008, 22:40 น.
ตามมาเรียนค่ะ  :12:
ตอนนี้ศึกษาแต่เรื่อง data warehouse อย่างเดียวเลย  :40:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานได้อย่าง
โพสต์โดย: เทอร์โบบูสเตอร์ เมื่อ 16 ก.ค. 2008, 22:46 น.
อย่างจดจ่อเลยครับ  :25:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานได้อย่าง
โพสต์โดย: ลุงซัน เมื่อ 17 ก.ค. 2008, 19:29 น.
ขอเวลาปรับจิตปรับใจหน่อยนะครับ
โดยเฉพาะกำลังปรับ table of content
กลัวจริงๆว่าใส่ไปใส่มาจะเยอะไปหมด(เพราะเทคนิคมันเยอะมากๆ)
แต่จะพยายามให้อยู่ภายใต้ระบบของกรณีศึกษา case study
จะมีใครแนะนำหรือสอบถามเรื่องต่างๆก็ดีนะครับ(เพื่อผมจะนึกออกว่าต้องใส่อะไรเข้าไปบ้าง)
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานได้อย่าง
โพสต์โดย: poloh เมื่อ 17 ก.ค. 2008, 21:26 น.
หลักการ query data กับ ออกแบบ table หรือ set index มันเกี่ยวไหมครับ
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานได้อย่าง
โพสต์โดย: ลุงซัน เมื่อ 17 ก.ค. 2008, 21:31 น.
อ้างคำพูดจาก: poloh เมื่อ 17 ก.ค. 2008, 21:26 น.
หลักการ query data กับ ออกแบบ table หรือ set index มันเกี่ยวไหมครับ
เกี่ยวอย่างมากครับ
แต่มันน่าจะอยู่ในหนังสือ database design
เพราะเรื่องมันเยอะ
ผมคงจะได้แต่พูดแนวคิดเรื่อง Tunning (ในหัวข้อ High Available Database)
ขอขอบคุณมากครับ เพราะจะได้ไม่ลืมเอาไปเขียนเป็นแนวคิด
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: เดอะบุ๋ม เมื่อ 18 ก.ค. 2008, 14:06 น.
รออ่านต่อค่า   :25:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: Earthchie เมื่อ 18 ก.ค. 2008, 17:15 น.
กลัวอ่านไม่รู้เรื่อง

ผมควรเตรียมอ่านอะไรมาล่วงหน้าเพื่อความเข้าใจยิ่งขึ้นบ้างมั๊ยครับ
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 18 ก.ค. 2008, 18:06 น.
อ่านไม่รู้เรื่องแสดงว่าผมยังเขียนไม่ดี
มีอะไรก็ถามหรือแนะนำได้ครับ
--------------------------
บทนำ
จากนิยามของ IEEE คำว่า High Availability นั้นจะหมายถึง การสามารถใช้งานทรัพยากรของระบบคอมพิวเตอร์ ซึ่งเราจะเน้นที่สามารถใช้งานได้ แม้ว่าระบบคอมพิวเตอร์ยังปกติแต่ไม่สามารถใช้งานได้ซึ่งอาจเกิดจากช่องทางการเข้าถึงทรัพยากรนั้นเต็ม เราจะเรียกระบบนั้นไม่เป็น High Availability พูดสรุปโดยรวมระบบของเราต้องสามารถใช้งานได้สูง ซึ่งจะกล่าวถึงเทคนิคต่างๆในเนื้อหาในช่วงต่อๆไป

"High Availability (HA for short) refers to the availability of resources in a computer system, in the wake of component failures in the system."
http://www.ieeetfcc.org/high-availability.html (http://www.ieeetfcc.org/high-availability.html)

การออกแบบระบบแบบ High Availability ควรคำนึงถึง
-   downtime ที่ยอมรับได้
-   ความสามารถในการใช้ระบบ (Availability)
-   ความน่าเชื่อถือของระบบ (Reliable)
-   ความยืดหยุ่น (Flexible)
-   ค่าใช้จ่ายที่เหมาะสมที่จะตอบสนองความต้องการของธุรกิจได้ (Cost Effective)
-   การทำงานเชิงรุก การป้องกัน การแก้ไขและบริการสนับสนุน (Proactive, Preventive, Reactive and support) )
-   การกู้คืนระบบโดยเร็ว (Rapidly restore)
-   งบประมาณ(budget)และระยะเวลา(Time)ที่จะใช้ระบบ
-   ข้อตกลงของระดับการให้บริการ (Service Level Agreement:SLA)
-   ความต้องการในการสับเปลี่ยนทำงานแทน (Fail Over)
-   ระดับความปลอดภัย (Security)

รวมถึงการหาผู้เชี่ยวชาญประจำสำนักงานหรือเป็นที่ปรึกษา นอกจากนั้นควรเลือกเทคโนโลยีที่ได้พิสูจน์จากการใช้งานจริง

การวัดค่าของ High Availability
   เนื่องจาก High Availability เราเน้นที่สามารถใช้ทรัพยากรของระบบได้หรือไม่ ตัววัดของ High Availability จึงเน้นที่ Downtime หรือ เวลาที่ระบบไม่สามารถใช้งานได้ การวัดค่า High Availability จะวัดออกมาในรูปของเปอร์เซ็นต์ที่ระบบสามารถใช้งานได้ (Availability) โดยเป้าหมายสูงสุดของระบบที่เป็น High Availability ก็คือระบบที่สามารถใช้งานได้ 99.999% หรือ ที่มักเรียกกันว่า Five Nines ซึ่งหมายถึงระบบ down ได้ 5.26 นาที ใน 1 ปี


ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 18 ก.ค. 2008, 18:10 น.
ตารางที่ 1.1 ค่าเปอร์เซ็นการใช้งานได้และระยะเวลา Downtime
(http://img2.f0nt.com/18/2b66ae1a23213baa76612e70184affa3.jpg)

ตารางที่ 1.2 สาเหตุของ Downtime   
(http://img2.f0nt.com/18/f2428d7f99c25a61de8e62078a7993e2.jpg)

(http://img2.f0nt.com/18/e0a0b9e5c8901f68b4cafbb7fb52d64d.jpg)
รูปที่ 1.1 รูปแสดงเปอร์เซ็นต์ของความสามารถของการใช้ทรัพยากรของระบบคอมพิวเตอร์

จากรูปที่ 1.1 เราจะเห็นได้ว่าเป้าหมายของ High Availability ระดับ Five Nines นั้นอยู่ในระดับของผู้ให้บริการสือสารหรือระบบการป้องของทหาร สำหรับงานทั่วๆไปความสามารถใช้ระบบระดับ 99% ซึ่งเทียบเท่า ISP นั้นเป็นที่ยอมรับได้
เนื้อหาที่กล่าวต่อไปในบทต่างๆจะเน้นเรื่องความสามารถใช้ระบบที่อิงการใช้งานบนเวปเป็นหลักซึ่งเป็นระบบที่นิยมใช้มากที่สุด โดยจะเน้นเทคโนโลยีของ 2 ค่ายใหญ่คือ Linux (LAMP) และ Microsoft Windows (ASP.NET) เป็นหลัก โดยมีส่วนประกอบอื่นๆเพื่อให้เหมาะสมกับกรณีศึกษาในบทสุดท้าย
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 18 ก.ค. 2008, 18:12 น.
คำศัพท์ที่เกี่ยวข้องกับ High Availability
สามารถใช้งานได้ต่อเนื่อง(Continuous Availability) ซึ่งจะหมายถึงให้บริการแบบไม่หยุดและไม่พลาด ซึ่งเป็นสิ่งในอุดมคติ (ideal state) สำหรับ High Availability นั้นจะหมายถึงสามารถใช้งานได้สูงโดยอาจมี Downtime เพียงเล็กน้อย ดังนั้น High Availability จึงไม่ได้หมายถึง สามารถใช้งานได้ต่อเนื่อง
การทนทานต่อความผิดพลาด(Fault Tolerance) การทนทานต่อความผิดพลาดนั้นมุ่งเน้นให้สามารถใช้งานของระบบได้สูงในกรณีแม้ว่าจะเกิดการผิดพลาดของ Hardware และ Software ซึ่งมักจะใช้วิธีอุปกรณ์ควบคู่(Redundant) ไม่ว่าจะเป็น CPU, Memory หรือ ระบบ IO. ในหลายๆครั้งระบบ(โดยรวม)ยังสามารถใช้งานได้แม้ว่า hard disk หรือ network card ไม่สามารถเริ่ม(wake)ใช้งานได้ ระบบดังกล่าวเรายังเรียกว่าเป็น High Availability แต่ไม่เป็น Fault Tolerance กล่าวคือการออกแบบระบบ High Availability อาจไม่จำเป็นต้องใช้วิธีการเดียวกับ Fault Tolerance ตัวอย่างเช่นใช้ CPU, Memory, Harddisk ตัวเดียว ในระบบ High Availability และใช้วิธีการจัดระบบ Server แทน พูดง่ายๆว่า ระบบสามารถใช้งานได้แต่ไม่ทนทาน หรือถ้าเทียบกับหุ่นยนต์ในสายการผลิต ระบบ High Availability อาจใช้หุ่นยนต์ตัวเล็กๆช่วยกันทำงานและจัดกระบวนการการทำงาน แต่  Fault Tolerance จะเน้นที่หุ่นยนต์ที่อึดแข็งแรงแทน(อาจมีแหล่งพลังงาน 2 ชุด มีหน่วยความจำ 2 ชุ ด..ฯลฯ)
Single Point of Failure (SPOF) ในระบบของเรานั้นมี Hardware หรือ Software ที่ไม่ทำงานเพียงตัวเดียวทำให้การบริการของระบบทำงานไม่ได้ เราจะเรียกจุดดังกล่าวว่า Single Point of Failure
Failover ในระบบ High Availability เรามักจะใช้วิธีตัวตายตัวแทน ซึ่งหมายถึงส่วนประกอบตัวหนึ่งไม่ทำงาน ส่วนประกอบอีกส่วนจะทำงานแทน เราเรียกว่าวิธีการโอนย้ายการทำงานจากส่วนประกอบหนึ่งไปอีกส่วนประกอบหนึ่งว่า Failover
Service Level Agreement(SLA) เป็นข้อตกลงของระดับของการบริการ ระหว่างผู้ให้บริการกับผู้รับบริการ ซึ่งอาจไม่เกี่ยวข้องกับ High Availability เพราะไม่จำเป็นต้องระดับ 90% ขึ้นไป
-----------------------
จบตอนที่ 1 มีอะไรแนะนำได้นะครับ
อาจเขียนไม่ยาวนัก เพราะเน้นเรื่องแนวคิด(concept) เป็นหลัก
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: Earthchie เมื่อ 18 ก.ค. 2008, 18:59 น.
อ้างคำพูดจาก: ลุงซัน เมื่อ 18 ก.ค. 2008, 18:06 น.
อ่านไม่รู้เรื่องแสดงว่าผมยังเขียนไม่ดี
มีอะไรก็ถามหรือแนะนำได้ครับ


อ้อ เปล่าๆๆ ครับ คือผมยังไม่มีความรู้ด้านนี้เลยซักนิดน่ะครับ

เลยกลัวจะอ่านไม่รู้เรื่องเพราะไม่มีพื้นฐาน
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 18 ก.ค. 2008, 21:56 น.
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 18 ก.ค. 2008, 18:59 น.
อ้อ เปล่าๆๆ ครับ คือผมยังไม่มีความรู้ด้านนี้เลยซักนิดน่ะครับ

เลยกลัวจะอ่านไม่รู้เรื่องเพราะไม่มีพื้นฐาน
ผมตั้งใจเป็นแค่เป็นแนวคิดเลยอยากให้อ่านได้ทุกคน(แม้จะหลีกเลี่ยงศัพท์เทคนิคไม่ได้)
เฉพาะฉนั้นยังยืนยันคำเดิม ถ้าอ่านไม่รู้เรื่องแสดงว่าผมยังเขียนได้ไม่ดีพอ  :21:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: poloh เมื่อ 18 ก.ค. 2008, 22:25 น.
 :25: มาแว้วๆ
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 19 ก.ค. 2008, 01:13 น.
เข้าใจว่าเขียนดีแล้วครับ แต่ผมโง่เกินไป
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 19 ก.ค. 2008, 01:51 น.
อ้างคำพูดจาก: ศิษย์มีครู เมื่อ 19 ก.ค. 2008, 01:13 น.
เข้าใจว่าเขียนดีแล้วครับ แต่ผมโง่เกินไป
เอ๋า
ถ้าสารภาพจริงๆนะ ผมยังรู้สึกว่ามันยังดีไม่พอ
แต่ถ้าเอาแบบพอใจ(ตัวเอง)อาจยาวเหยียด จนน่าเบื่อ
เลยอยากให้ถามหรือเสนอแนะเป็นประเด็นๆไป(เพื่อผมจะได้นำไปปรับปรุง หรือ ขยายความ)  :52:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: เทอร์โบบูสเตอร์ เมื่อ 19 ก.ค. 2008, 13:08 น.
ต่อเลยครับลุงซัน  :25:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: Earthchie เมื่อ 19 ก.ค. 2008, 16:48 น.
บทแรกเข้าใจนะครับ

เข้าใจง่ายด้วย  :45:

ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: Tee++; เมื่อ 19 ก.ค. 2008, 23:28 น.
สนใจมากครับ กำลังเป็นเรื่องที่หาข้อมูลอยู่พอดีเลยครับ สมัครสมาชิกเพื่อมาตอบกระทู้นี้โดยเฉพาะเลย   :45:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 24 ก.ค. 2008, 02:18 น.
มาแจ้งข่าวสักนิดครับ เดี๋ยวจะสงสัยว่าหายไปไหน
เนื่องจากการได้รับเงินโบนัส ได้เงินค่าตำแหน่ง และ ได้ค่าสอนพิเศษ เลยพอมีเงินไปซื้อเครื่อง Wii (แต่มือสอง เพราะอยากได้ menu english)
หลังจากอิจฉาตาแอนนนนนมานาน ก็ลงมือเล่นซะไปหลายๆครั้ง โดยเฉพาะเกมตี baseball ตีอย่างสุดแรง
ผลก็คือนอนระบ่มไปหมด ปวดหลัง ปวดตัวร้องโอ๊ยๆทรมานจัง (สังขารไม่เที่ยง อายุไม่อำนวยกับการออกแรงมากๆ)
เลยมาแจ้งเหตุว่าไม่ได้หายไปไหน ยังมีต่อแต่ขออีกนิด
พรุ่งนี้ผมสอนเกือบทั้งวัน บ่ายแก่ๆก็มีประชุมต่อ
จึงคาดว่าวันศุกร์จะมาเล่าบทที่ 2 ให้ฟังครับ (ถ้าไม่ทันก็เลยไปเสาร์-อาทิตย์)
(หัวข้อที่ 3 ในบทที่ 2 เขียนหนังสือได้เป็นเล่ม คงต้องอดใจเอาแค่แนวคิด แต่จะพยายามบอกแหล่งที่จะหาข้อมูลเพิ่มให้ ถ้าลืมก็ทักทวงได้นะครับ)
note:
ผมเปลี่ยนหัวข้อในบทที่ 9 เล็กน้อยครับ จริงๆในทุกๆหัวข้อสามารถเขียนหนังสือออกมาได้เป็นเล่มเลย
ถ้ามีโอกาสอาจเขียนเรื่อง asp.net ก่อน แล้วค่อยตามด้วย PHP(ต้องศึกษาไปด้วย)
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: นายโอ้เอ้ เมื่อ 24 ก.ค. 2008, 02:23 น.
วัยรุ่นจริงๆ  :30:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 24 ก.ค. 2008, 02:33 น.
อ้างคำพูดจาก: นายโอ้เอ้ เมื่อ 24 ก.ค. 2008, 02:23 น.
วัยรุ่นจริงๆ  :30:
หมายถึง นายโอเอ้เหรอ?
ดูหน้าซิ
แต่พูดไปแล้ว ผมไม่เคยทันเทศกาลอะไรของ f0nt เลย  :43: (ตอนนี้เห็นเริ่มแต่งหน้ากันอีกแล้ว)
-------------------
กลับมาทีเอารูปมาฝาก (เพื่อใครจะคิดทำระบบที่ไม่มีวันล่ม)
(http://img2.f0nt.com/24/541949aa689516788e5cff1f0c67c950.jpg)

ที่มา Microsoft (http://download.microsoft.com/download/1/1/a/11a3a3c1-475b-4561-9ad2-f02d4e884398/Kickoff_spain.ppt)

เรื่องที่มา ผมจะพยายามอ้างอิงไว้ แต่ให้สังเกตุที่มาด้วยนะครับ(เพราะส่วนมากจะเอียงเข้าข้างตัวเองทั้งนั้น แต่ก็พอที่จะใช้เป็นข้อมูลได้ เพราะไม่อย่างนั้นคงมีคนแย้งแน่ๆ)
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ตอ เมื่อ 24 ก.ค. 2008, 13:34 น.
มานั่งรออ่านต่อด้วยคนครับ

ลุงซันไม่ได้เขียนไม่ดีนะ คือว่าผมเองก็ไร้พื้นฐานเหมือนกัน
แต่จะพยายามตามครับ
น่าสนใจดี

ขอบคุณครับ :46: :46:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 03 ส.ค. 2008, 23:09 น.
เดิมว่าจะเขียนตั้งแต่อาทิตย์ที่แล้ว
แต่ดันนอนในห้องปิด ไม่เปิดแอร์ ไม่เปิดหน้าต่าง(ลืม)
ตื่นมาก็มึนๆอีกวันก็ไม่สบาย สรุปว่ายังงงๆตัวเอง  :49:
ขออภัยที่หายไป
----------------------
หลังจากหายไปสักพัก มาขอต่อกันนะครับ
ก่อนอื่นขอเริ่มจากศัพท์ (พอจะเขียนต่อ หาข้อมูลเพิ่ม ก็ทำให้นึกได้ว่าลืมศัพท์ไปเยอะ เลยเอามาต่อกับบทที่ 1 ครับ)

ความสามารถในการปรับขนาด(Scalable/ Scalability)

"Fast enough to handle expected load.  Grow easily when load grows"
Paul Greenfield, CSIRO

"Scalability is how your application behaves as the number of users increases"
Clint Edmonson, clinted@microsoft.com

หลายๆครั้งเรามักจะเรียกทับศัพท์ว่าปรับสเกล การปรับขนาดนี้ต้องการมุ่งหวังให้ระบบสามารถปรับขนาดให้สามารถรองรับจำนวนผู้ใช้มากขึ้นหรือรองรับภาระงานที่มากขึ้น

Scalability= Increase serving capacity
High Availability= Increase uptime

ประสิทธิภาพ(Performance)

Performance is how your application behaves when there is just one user
"Clint Edmonson, clinted@microsoft.com"

"Aim for 'enough' of each but not more."
Paul Greenfield, CSIRO

ประสิทธิภาพเราจะเน้นว่าระบบ(หรือโปรแกรมประยุกต์)ของเรานั้นสามารถทำงานได้ดีขนาดไหน หลายครั้งที่เราพบว่าระบบของเราทำงานได้มีประสิทธิผล(Effective) แต่ยังไม่มีประสิทธิภาพเพียงพอ ในงานสมัยใหม่ที่ต้องการความรวดเร็วตอบสนองผู้ใช้ที่ใจร้อนเราต้องคำนึงถึงประสิทธิภาพของระบบด้วย หลายครั้งที่การปรับขนาด (Scalability) อยู่คู่กับประสิทธิภาพทำให้เกิดความเข้าใจผิดว่ามันคือสิ่งเดียวกัน แต่ในหลายๆครั้งเรามักจะใช้ประสิทธิภาพกับระบบโดยรวม หรือ แม้กระทั่งการทำงานขององค์กรที่เรามักวัดออกมาในรูปของ Key Performance Indicator (KPI) คือ เราควรกำหนดว่าอะไรคือประสิทธิผลและประสิทธิภาพของระบบ

ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 03 ส.ค. 2008, 23:25 น.
การเกิดขึ้นในเวลาเดียวกัน(Concurrency)

Dijkstra -- "Concurrency occurs when two or more execution flows are able to run simultaneously"

Concurrency: acting together, as agents or circumstances or events. WordNet® 3.0, Princeton University.

Simultaneously: Happening, existing, or done at the same time. American Heritage Dictionary

การเกิดขึ้นหรือทำงานในเวลาเดียวกัน (Concurrency) เราจะวัดจากงานหลายๆงานหรือผู้ใช้หลายๆคนเข้ามาใช้ระบบในระยะเวลาเดียวกัน(Simultaneously) ระบบที่ดีควรคำนึงถึงกรณีที่ผู้ใช้เข้าใช้งานระบบของเราในเวลาเดียวกัน ตัวอย่างเช่นระบบของระบบสามารถตอบสนองการเรียกใช้งานได้ดี (request/second) แต่ไม่สามารถตอบสนองได้ดีกรณีของผู้ใช้หลายๆคนเข้ามาใช้ระบบ(เรามักใช้เทคนิด scalable,Load Balance ช่วยในกรณีมีผู้ใช้จำนวนมาก)

การทำงานแบบขนาน(Parallelism)

    "Simultaneous execution of the same task!"

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

การทดสอบของภาระ(Load Test)/ การทดสอบของภาวะบีบคั้น(Stress Test)

"Load is how many simultaneous users your application can serve" Clint Edmonson, clinted@microsoft.com
"Stress is how well your application behaves when resources become limited" Clint Edmonson, clinted@microsoft.com

นอกจากการทดสอบประสิทธิภาพ(Performance Test) เรามักจะได้ยินคำว่า Load Test และ Stress Test การทดสอบภาระเราจะเน้นว่าระบบของเรารับภาระได้ดีขนาดไหนในกรณีที่มีผู้ใช้ระบบจำนวนมาก ขณะที่การทดสอบของภาวะบีบคั้นเราจะทดสอบระบบในกรณีที่ระบบของเรามีทรัพยากรระบบจำกัด (เช่น เราซื้อเครื่องมา 1 เครื่องความเร็ว 2.4 GHz RAM 2 G ด้วยระบบขนาดนี้เราจะรองรับ Stress Test ได้ขนาดไหน)

Mean Time Between Failure: MTBF
ค่าเฉลี่ยของระยะเวลาที่เกิดการผิดพลาด (MTBF) เราจะนิยามง่ายๆว่าระบบหรือฮาร์ดแวร์ของเราสามารถใช้งานได้นานขนาดไหนก่อนเกิดข้อผิดพลาด ตัวอย่างเช่นระบบของเราเปิดใช้งานไป 100 ชม. แต่เกิดข้อผิดพลาดขึ้น 2 ครั้ง เราจะได้ MTBF =100/2 = 50 ชม. นั้นก็คือระบบของเราจะมีค่าเฉลี่ยใช้งานได้ 50 ชม. ก่อนเกิดข้อผิดพลาด (จะมีใครตรวจสอบ MTBF ของ Hard Disk ก่อนซื้อไปใช้งานไหม?)

Mean Time to Repair (MTTR)
ค่าระยะเวลาเฉลี่ยต่อการเข้าไปซ่อมต่อครั้ง ก็คือระยะเวลาเฉลี่ยที่ต้องใช้ในการเข้าไปซ่อมแซมระบบหรือฮาร์ดแวร์ของเรา ยกตัวอย่างเช่น ครั้งแรกใช้เวลา 30 นาที ครั้งที่สองใช้เวลา 10 นาที  ครั้งที่สามใช้เวลา 20 นาที เราจะได้ MTTR=(30+10+20)/3=20 นาที

Mean Time To Failure (MTTF)
ค่าระยะเวลาเฉลี่ยที่ระบบหรือฮาร์ดแวร์หยุดทำงาน ซึ่งก็คือ MTTR รวมกับเวลาที่เกิด Downtime ด้วยสาเหตุอื่นๆ ค่าของความสามารถใช้งานระบบ(Availability) เราจะวัดจาก
  Availability=MTBF/(MTBF+MTTF) ซึ่งก็คือค่าในตาราง 1.1 นั้นเอง

ความน่าเชื่อถือของระบบ (Reliability)
"Reliability measures the ability of a system to function continuously without interruptions", High Availability Fundamentals, Sun BluePrints™

หลายครั้งที่เราคิดว่าความน่าเชื่อถือของระบบ (Reliability) กับความสามรถในการใช้ระบบ(Availability)นั้นเป็นเรื่องเดียวกัน จริงๆแล้วเราสามารถทำให้ระบบสามารถใช้งานได้แม้กระทั่งระบบความน่าเชื่อถือของระบบไม่สูง (เช่นใช้เครื่อง PC ธรรมดาหลายตัวทำ Server โดยไม่ต้องใช้ Server Spec ในระบบ) เรามักจะใช้อุปกรณ์ที่มีความน่าเชื่อถือสูงในระบบที่อยู่ในระยะไกล(Remote Site) ทั้งนี้เพราะระบบที่อยู่ระยะไกลต้องเสียเวลาในการบำรุงรักษาระบบ รวมถึงการแก้ปัญหาเมื่อระบบไม่สามารถใช้งานได้ เราสามารถประมาณความสัมพันธ์ของความน่าเชื่อถือของระบบกับความสามรถในการใช้ระบบได้ดังนี้
(http://img2.f0nt.com/03/3cd9a152e996d52e0a1e1d367659ce0b.png)
High Availability Fundamentals, Sun BluePrints™
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 03 ส.ค. 2008, 23:31 น.
บทที่ 2 Web Servers
หลังจากนักฟิสิกส์นาม Tim Berners-Lee ได้ค้นคิด HTML โลกเราก็รู้จัก web page หลังจากนั้น National Center for Supercomputing Applications(NCSA)ทำให้เราได้รู้จัก Web Browser (NCSA Mosaic) และ Web Server (NCSA HTTPd) แต่ NCSA HTTPd ยังมีจุดอ่อนที่ต้องแก้ไข นาย Robert McCool ซึ่งมีส่วนเกี่ยวข้องกับาการพัฒนา  NCSA HTTPd เมื่อออกจาก NCSA ก็ยังต้องการแก้ไข NCSA HTTPd ความตั้งใจเดิมของ Robert นั้นต้องการสร้างส่วนแก้ไข (a Patch) โดยตั้งชื่อโปรแกรมตัวเองว่า Apache (A Patch of NCSA HTTPd, A PAtCHy) โดยมีคนเข้าร่วมหลายคน ไปๆมาๆเลยกลายเป็น Web Server ทั้งตัว แถม Apache กลายเป็นมาตราฐานของ Web Server ของฝั่ง Unix/Linux ที่ใครๆก็รู้จัก
   การออกแบบระบบให้สามารถใช้งานได้สูง ถ้าการใช้งานระบบกระทำผ่านเวป ส่วนสำคัญของระบบก็คือ Web Server นั้นเอง

Apache 1.3 and 2.0
(http://img2.f0nt.com/03/024f1fad789b90e7087035b569531c44.png)
http://www.linuxjournal.com/article/4559
ตามที่กล่าวมา Apache ถูกสร้างโดยมุ่งที่การแก้ปัญหาของ Web Server เดิม (NCSA) จึงทำให้ Apache ถูกพัฒนาอย่างมากใน Apache รุ่นถัดมา โดย Apache รุ่นแรกจะมีการทำงานแบบสร้างตัวเอง(Fork) เพื่อรับงานที่มากขึ้น ในขณะที่ รุ่น 2.0 มีโหมดการทำงานที่เรียกว่า Worker ซึ่งใช้เทคนิคแบบ Multithread ทำให้ Apache มีประสิทธิภาพที่ดีขึ้น

Prefork
•   High memory usage
•   Highly tolerant of faulty modules
•   Highly tolerant of crashing children
•   Fast
•   Well-suited for 1 and 2-CPU systems
•   Tried-and-tested model from Apache 1.3
•   "You'll run out of memory before CPU."

Worker
•   Low to moderate memory usage
•   Moderately tolerant to faulty modules
•   Faulty threads can affect all threads in child
•   Highly-scalable
•   Well-suited for multiple processors
•   Requires a mature threading library
(Solaris, AIX, Linux 2.6 and others work well)
•   Memory is no longer the bottleneck.


จากการทดสอบของ camelrichard (http://www.camelrichard.org/apache-prefork-vs-worker) ได้ผลได้ดังนี้
-------------------------------------------------------------
Siege results for prefork:
-------------------------------------------------------------
Lifting the server siege...      done.                                                   
Transactions:                   6045 hits
Availability:                 100.00 %
Elapsed time:                 300.38 secs
Data transferred:               0.25 MB
Response time:                  0.50 secs
Transaction rate:              20.12 trans/sec
Throughput:                     0.00 MB/sec
Concurrency:                    9.97
Successful transactions:        6045
Failed transactions:               0
Longest transaction:           10.13
Shortest transaction:           0.00
-------------------------------------------------------------
-------------------------------------------------------------
Siege results for worker:
-------------------------------------------------------------
Lifting the server siege...      done.                                                     
Transactions:                  11024 hits
Availability:                 100.00 %
Elapsed time:                 300.24 secs
Data transferred:               0.46 MB
Response time:                  0.27 secs
Transaction rate:              36.72 trans/sec
Throughput:                     0.00 MB/sec
Concurrency:                    9.91
Successful transactions:       11024
Failed transactions:               0
Longest transaction:           11.92
Shortest transaction:           0.00
-------------------------------------------------------------
ซึ่งพบว่าการทำงานแบบ Worker นั้นให้การตอบสนองได้ดีกว่าแบบ Prefork เกือบ 2 เท่า แต่เรามักจะได้ยินว่าถ้าเราใช้ PHP ให้ตั้งค่าเป็นแบบ Worker ทั้งนี้เหตุผลหลักก็เพราะ PHP ก่อนรุ่น 4.3 ยังมีปัญหากับการทำงานแบบ Worker (http://th2.php.net/manual/en/install.unix.apache2.php) และ การทำงานแบบ Prefork นั้นมีความน่าเชื่อถือได้มากกว่า Worker (ถ้า Module หรือ Child Process เกิดข้อผิดพลาด)
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 03 ส.ค. 2008, 23:37 น.
Zeus/LiteSpeed/lighttpd
http://www.zeus.com
http://litespeedtech.com/
http://www.lighttpd.net/

เนื่องจาก Apache ถูกสร้างโดยมุ่งแก้ปัญหาของ NCSA HTTPd เป็นหลักจึงทำให้มีผู้พัฒนาอื่นแทรกตัวขึ้นมาแข่งกับ Apache โดย Web Server ตัวแรกที่นิยมใช้ในธุรกิจก็คือ Zeus เพราะให้การตอบสนองของการเรียกใช้งานของผู้ใช้ได้ดีกว่า Apache มาก อย่างไรก็ตาม Zeus หยุดพัฒนาที่รุ่น 4.3 จึงทำให้ทั้ง Apache และ Zeus มีคู่แข่งเพิ่มขึ้นมาซึ่งได้แก่ LiteSpeed (Free/Commercial) และ Lighttpd (Opensource) โดยทั้งคู่มีประสิทธิภาพที่ดีกว่า Apache
(http://www.serverpoint.com/english/images/zeus-performance.gif)

(http://www.litespeedtech.com/static/image/bench/r2/hellophp.gif)

ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 03 ส.ค. 2008, 23:39 น.
Engine X(Nginx) http://nginx.net/
ขณะที่ lighttpd ได้รับความนิยมสูงขึ้น ผู้ใช้งานก็พบว่า lighttpd มีปัญหาหลายๆอย่างที่ยังไม่ได้รับการแก้ไขเช่นจำนวน Modules ของ Web Server(mod ของ Apache),Web Control Panel(Web Hosting) หรือแม้กระทั่ง http access control ซึ่งเป็นปัญหาหลักทีทำให้จำนวนผู้ใช้ lighttpd น้อยลง ขณะที่  Nginx มีปัญหาเหล่านี้น้อยกว่า มีประสิทธิภาพดีกว่า และ สามารถประยุกต์ใช้เป็น HTTP/Mail Proxy ทำให้ผู้ใช้งาน Nginx มีจำนวนมากขึ้น

(http://farm4.static.flickr.com/3025/2420258257_8b30ea22b1_o.jpg)

(http://farm4.static.flickr.com/3241/2298693485_df1606c495.jpg?v=0)

(http://blog.kovyrin.net/wp-content/uploads/2006/08/rails_qps.gif)
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: นายโอ้เอ้ เมื่อ 03 ส.ค. 2008, 23:41 น.
มี nginx อีกตัวครับของรัสเซียที่กำลังเติบโตอย่างเงียบๆ
ทำงานใต้เท่าหรือดีกว่า Lighttpd ในงานเดียวกัน
จะพบว่าเว็บใหญ่ๆ หลายเว็บเริ่มจะใช้ nginx กันแล้ว

http://wiki.codemongers.com/Main


(http://wiki.codemongers.com/NginxNews?action-AttachFile&do=get&target=netcraft_chart_with_lighttpd.png)

ไม่ยอมๆ ขวัญใจผมนะ  :11:


หวายๆ ขอโทษครับ นึกว่าไม่มี  :03:  :46:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 03 ส.ค. 2008, 23:42 น.
Yet Another Web Server(YAWS) - http://yaws.hyber.org/
ภาษาในการเขียนโปรแกรมที่ถูกออกแบบให้รองรับจำนวนผู้ใช้งานจำนวนมากคือภาษา Erlang (http://www.erlang.org/) ซึ่งเป็นภาษาที่ Ericsson ใช้พัฒนาระบบ Telecommunication ซึ่งต้องรับรับจำนวนผู้ใช้จำนวนมาก ทำให้ Erlang เป็นภาษาที่มีจุดเด่นเรื่องการรองรับจำนวนผู้ใช้ในเวลาเดียวกัน  Claes (klacke) Wikström ได้นำภาษา Erlang มาเขียนเป็น Web Server ตั้งชื่อว่า Yet Another Web Server ซึ่งทำให้ Web Server ตัวนี้สามารถรองรับจำนวนผู้ใช้ได้จำนวนมาก โดย Ali Ghodsi ได้ทดสอบประสิทธิภาพของ Apache กับ YAWS ซึ่งพบว่าถ้าผู้ใช้มากกว่า 4,000 คนจะทำให้ Apache นั้นหยุดทำงาน(ในระบบจริงเราใช้เทคนิค Scalable/Load Balance ช่วย) ขณะที่  YAWS รองรับได้มากกว่า 80,000 concurrent  แต่ข้อเสียของ YAWS จะเหมือนกับการเกิดของ lighttpd นั้นก็คือ จำนวน Modules ของ Web Server(mod ของ Apache),Web Control Panel(Web Hosting)ยังมีจำนวนน้อย แม้ว่า  YAWS จะเหมาะกับการใช้กับเวปที่รองรับจำนวนมากแต่ก็คงเหมาะกับเวปที่มีเนื้อหาแบบ Static เป็นหลัก หรือเวป Dynamic แบบพื้นฐาน (แม้ว่า YAWS จะสนับสนุน PHP แต่ก็ยังมีส่วนการใช้งานจริงที่ยังไม่สนับสนุนอีกหลายประการ)

"Apache 2.0.39 with the worker MPM failed at 4,000 concurrent connections, while Yaws continued functioning with over 80,000 concurrent connections"

(http://www.sics.se/~joe/images/apachevsyaws.jpg)

------------------------------------------------
ขอหยุดบทที่ 2 แค่นี้ก่อนนะครับ
เหลือ IIS7 ต้องไปหาก่อนว่าตัวเองเก็บข้อมูลไว้ที่ไหนบ้าง
เรื่องที่เขียนค่อนข้างน้อย(เพราะเน้นแนวคิด กลัวเริ่มเขียนเยอะ จะเป็นข้อมูลเยอะไปหมด)
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 03 ส.ค. 2008, 23:43 น.
อ้างคำพูดจาก: นายโอ้เอ้ เมื่อ 03 ส.ค. 2008, 23:41 น.
มี nginx อีกตัวครับของรัสเซียที่กำลังเติบโตอย่างเงียบๆ
ทำงานใต้เท่าหรือดีกว่า Lighttpd ในงานเดียวกัน
จะพบว่าเว็บใหญ่ๆ หลายเว็บเริ่มจะใช้ nginx กันแล้ว
ไม่ยอมๆ ขวัญใจผมนะ  :11:


กดช้าไปนะ ฮิ ฮิ
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: นายโอ้เอ้ เมื่อ 03 ส.ค. 2008, 23:51 น.
อ้างอิงแต่ข้อเสียของ YAWS จะเหมือนกับการเกิดของ lighttpd

ตรงนี้คืออะไรเหรอครับ
ข้อเสียของมันคือ ..  :09:

ยังไม่ได้อ่านที่เว็บมันครับ
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 03 ส.ค. 2008, 23:57 น.
อ้างคำพูดจาก: นายโอ้เอ้ เมื่อ 03 ส.ค. 2008, 23:51 น.
ตรงนี้คืออะไรเหรอครับ
ข้อเสียของมันคือ ..  :09:
มีปัญหาหลายๆอย่างที่ยังไม่ได้รับการแก้ไขเช่นจำนวน Modules ของ Web Server(mod ของ Apache),Web Control Panel(Web Hosting) หรือแม้กระทั่ง http access
อ้างอิง
ยังไม่ได้อ่านที่เว็บมันครับ
คงไม่มีแน่(เพราะคงไม่บอกข้อเสียตัวเอง)
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: นายโอ้เอ้ เมื่อ 04 ส.ค. 2008, 00:11 น.
อ๋อ อย่างนี้นี่เอง
คือมันมีข้อจำกัดหลายๆ ในการเอามาใช้งานจริงใช่มั้ยครับ

ตอนนี้ lighttpd มี control panel หลายตัวที่เริ่มจะ support แล้ว
http://www.syscp.de/ - ต้องแก้ไขนิดหน่อย
http://www.openpanel.com/ - เห็นมี mod lighttpd
http://www.isp-control.net/ - มีแผนรองรับ lighttpd และเว็บหลักเองก็ใช้ lighttpd


แต่ทาง nginx ยังเงียบๆ อยู่เลย
ถ้าความนิยมยังขึ้นต่อเนื่องแบบนี้ มีหวังได้เห็นกันแน่ๆ แอบหวัง  :40:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 04 ส.ค. 2008, 01:14 น.
อ้างคำพูดจาก: นายโอ้เอ้ เมื่อ 04 ส.ค. 2008, 00:11 น.
อ๋อ อย่างนี้นี่เอง
คือมันมีข้อจำกัดหลายๆ ในการเอามาใช้งานจริงใช่มั้ยครับ

ตอนนี้ lighttpd มี control panel หลายตัวที่เริ่มจะ support แล้ว
http://www.syscp.de/ - ต้องแก้ไขนิดหน่อย
http://www.openpanel.com/ - เห็นมี mod lighttpd
http://www.isp-control.net/ - มีแผนรองรับ lighttpd และเว็บหลักเองก็ใช้ lighttpd


แต่ทาง nginx ยังเงียบๆ อยู่เลย
ถ้าความนิยมยังขึ้นต่อเนื่องแบบนี้ มีหวังได้เห็นกันแน่ๆ แอบหวัง  :40:

จุดตายของ lighttpd ก็คือ http access ซึ่งมีผลกระทบกับ mod ยอดนิยม mod_rewrite
nginx มีข้อมูลในการเขียน module (http://emiller.info/nginx-modules-guide.html) ชัดเจนกว่า
จึงทำให้[ur=http://wiki.codemongers.com/NginxModulesl]จำนวน Modules[/url] มีมากขึ้นเรื่อยๆ
lighttpd มีจุดอ่อนหลายอย่าง จึงเหมาะกับ static web หรือ basic dynamic (แต่ youtube ก็ใช้ lighttpd)
http://hostingfu.com/article/nginx-vs-lighttpd-for-a-small-vps (http://hostingfu.com/article/nginx-vs-lighttpd-for-a-small-vps)
ส่วน nginx นั้นดังเพราะได้จำนวน req/sec ดี ในขณะที่ใช้หน่วยความจำน้อย และ ไม่มีปัญหาเรื่อง memory leak

เรื่อง web control panel
lighttpd มีปัญหามาตั้งแต่ต้น แล้วค่อยๆแก้(ซึ่งไปได้ไม่ไกล)
nginx มีคนสนับสนุนได้เร็วกว่า lighttpd
Using SysCP Panel with Nginx (http://blog.dead.at/2008/07/using-syscp-panel-with-nginx-apache2.html)
ISPmanager (http://en.wikipedia.org/wiki/ISPmanager)
directadmin (http://www.directadmin.com/forum/showthread.php?t=20133)
มีคนทำ cPanel กับ nginx (http://www.webhostingtalk.com/showthread.php?t=708332)


http://blog.taragana.com/index.php/archive/ngnix-solution-for-directory-resolution-problem-in-virtual-hosting/ (http://blog.taragana.com/index.php/archive/ngnix-solution-for-directory-resolution-problem-in-virtual-hosting/)
-----------
กล่าวโดยสรุป ถ้าเอาแบบ sure ก็คง Apache
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: นายโอ้เอ้ เมื่อ 04 ส.ค. 2008, 01:32 น.
อ้างอิงกล่าวโดยสรุป ถ้าเอาแบบ sure ก็คง Apache

อันนี้ใช่เลยครับ เพราะโปรแกรมหลายๆ มันไม่ได้ออกแบบมาให้ใช้กับยี่ห้ออื่นเลย
ต้องมาแก้มาปรับเอง

ผมเคยทำเซิร์ฟเวอร์ให้เว็บๆ หนึ่ง โดยใช้ clipshare เป็นเว็บโพสคลิป
โดยใช้ nginx เป็น front end เป็น proxy
แล้วให้ apache อยู่หลังเป็น back end อีกที
อยู่กันคนละ port แล้ว ใช้ iptables forward ไปหา nginx ก่อน
ทุกอย่างทำงานปกติดี ยกเว้นตอนอัปคลิปมันไม่คำนวนเปอร์เซ็นการอัปให้
แก้แล้วก็ไม่ได้ ก็เลยต้องจำใจถอด nginx ออก
ทั้งๆ ที่ใจอยากให้มันเป็นพระเอกมากๆ เลยนะ  :08:

//

แชร์ประสบการณ์กัน ลุงซันคงไม่ว่านะครับ
กลัวทำให้บทความเป๋ไปเรื่อง nginx ซะ  :44:

ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: Layiji เมื่อ 04 ส.ค. 2008, 01:43 น.
อ่านด้วยคนครับ :32:



ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 04 ส.ค. 2008, 01:48 น.
อ้างคำพูดจาก: นายโอ้เอ้ เมื่อ 04 ส.ค. 2008, 01:32 น.
แชร์ประสบการณ์กัน ลุงซันคงไม่ว่านะครับ
กลัวทำให้บทความเป๋ไปเรื่อง nginx ซะ  :44:
ใครจะไปกล้าว่ายักษ์เอ้ ยักษ์แอนนนนน ......(อื่นๆ)
ดีออกเพราะทุกคนจะได้ประสบการณ์(จุดประสงค์หลัก)
เพราะใจจริง ผมก็ไม่รู้จะตายวันตายพรุ่ง ความรู้ที่มีก็จะหายไปกับตัวปล่าวๆ  :43:

เรื่องใช้ nginx กับ Apache ร่วมกัน ผมเห็นต่างประเทศก็ทำกันเยอะ
http://spindrop.us/2008/04/16/nginx-proxying-to-apache/ (http://spindrop.us/2008/04/16/nginx-proxying-to-apache/)
http://wiki.joyent.com/accelerators:nginx_apache_proxy (http://wiki.joyent.com/accelerators:nginx_apache_proxy)
http://blog.kovyrin.net/2006/05/18/nginx-as-reverse-proxy/ (http://blog.kovyrin.net/2006/05/18/nginx-as-reverse-proxy/)
http://blog.kovyrin.net/2006/04/17/typical-nginx-configurations/ (http://blog.kovyrin.net/2006/04/17/typical-nginx-configurations/)
Cpanel + Apache + Nginx proxy (http://www.webhostingtalk.com/showthread.php?t=610079)
http://www.ruby-forum.com/topic/139377 (http://www.ruby-forum.com/topic/139377)

อีกข้อที่ nginx ดังขึ้นมาก็เรื่อง reverse proxy/load balance เนี่ยแหละ
เช่น http://www.robbyonrails.com/articles/2007/02/01/goodbye-pound-hello-nginx (http://www.robbyonrails.com/articles/2007/02/01/goodbye-pound-hello-nginx)
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: นายโอ้เอ้ เมื่อ 04 ส.ค. 2008, 02:03 น.
เว็บแรกที่ผมเจอว่าใช้ ngix คือเว็บ สีแดง http://seedang.com
และก็เหมือนเป็นเว็บเดียวที่ผมเจอและรู้จัก ในตอนนั้น (ที่ไม่เจอและไม่รู้จักนี่ไม่รู้นะครับ)
แล้วก็มีเว็บที่ยกมาข้างบนนั่นแหละเป็นเว็บที่สอง ผ่านมาเกือบปีแล้ว :30:

แต่ตอนนี้เริ่มจะมีหลายเว็บขึ้นแล้ว เว็บบิตลึกลับแห่งหนึ่งก็เพิ่งเปลี่ยนจาก lighttpd มาเป็น nginx


ผมชอบหา web server แปลกๆ ครับ เป็นพวกชอบลองของใหม่

มีเทคนิคอย่างหนึ่งที่ผมใช้ในการหา คือ
ใช้ firefox ลง extension Header Spy
https://addons.mozilla.org/en-US/firefox/addon/4276

มันจะแสดงชื่อของ web server ที่ใช้ได้ (ถ้าไม่โดนแก้ header หลอกไว้)
ซึ่งรู้สึกได้เลยว่า nginx มีเว็บใหญ่ๆ หลายเว็บหันมาใช้กันเยอะเลย
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 04 ส.ค. 2008, 02:19 น.
อ้างคำพูดจาก: นายโอ้เอ้ เมื่อ 04 ส.ค. 2008, 02:03 น.
เว็บแรกที่ผมเจอว่าใช้ ngix คือเว็บ สีแดง http://seedang.com
ผมพึ่งรู้จัก seedang เมื่อวาน (ค้น google ไปเจอบทความ)
นั่งอ่าน บทความ 3 ประโยคที่ผู้ชายกลัว (http://seedang.com/stories/28872) ก็ขำๆดี (เพราะมันจริง โดนใจ)

อ้างอิง
แต่ตอนนี้เริ่มจะมีหลายเว็บขึ้นแล้ว เว็บบิตลึกลับแห่งหนึ่งก็เพิ่งเปลี่ยนจาก lighttpd มาเป็น nginx
icez,bit ..thailand?


อ้างอิง
ผมชอบหา web server แปลกๆ ครับ เป็นพวกชอบลองของใหม่
สาวๆคงแย่ถ้ามีแฟนชอบลองของใหม่ๆ

อ้างอิง
มันจะแสดงชื่อของ web server ที่ใช้ได้ (ถ้าไม่โดนแก้ header หลอกไว้)
ซึ่งรู้สึกได้เลยว่า nginx มีเว็บใหญ่ๆ หลายเว็บหันมาใช้กันเยอะเลย
โดนหลอกประจำ
แต่หลายที่จะดูไม่ค่อยได้เพราะมันหลายชั้น
เช่นของ youtube
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: นายโอ้เอ้ เมื่อ 04 ส.ค. 2008, 02:23 น.
อ้างคำพูดจาก: ลุงซัน เมื่อ 04 ส.ค. 2008, 02:19 น.
icez,bit ..thailand?

ไม่ใช่ครับ แต่อนาคตไม่แน่มั้งครับ  :21:

อ้างคำพูดจาก: ลุงซัน เมื่อ 04 ส.ค. 2008, 02:19 น.
สาวๆคงแย่ถ้ามีแฟนชอบลองของใหม่ๆ

เอ๊ะ  :55:

คนไม่มีแฟน  :05:
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: icez เมื่อ 11 ต.ค. 2008, 14:42 น.
แอบทดสอบ nginx มาพักนึงแล้วครับ
ไม่ไหว T_T ไม่เข้าใจวิธี config ของมันจนเลิกใช้ไปละ
ปรับ scale ขึ้นให้เท่า lighttpd ไม่ได้ซักที

(ผมเทสที่ 3000 req/sec + 500 concurrent)


ตอนแรกงงคำว่า http access อ่านไปอ่านมา หมายถึง .htaccess ใช่มั้ยครับ :08a:


nginx คงได้เอามาใช้กับเว็บฝากรูปก่อนมั้งครับ เพราะ php process ไม่เยอะ ไม่เหมือนตัวเว็บบิต เล่นซะกระจุยกระจาย




ปล. แอบทำ script สร้าง lighttpd.conf ของ plesk ไว้เรียบร้อยแล้ว
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: Earthchie เมื่อ 11 ต.ค. 2008, 15:27 น.
ถ้า YAWS มีคนสนใจมาช่วยพัฒนาตัวเสริมต่างๆ ก็น่าเล่นกว่า nginx สิครับ

ถ้างั๊น ทำไม นักพัฒนาไม่หันไปพัฒนาฝั่ง YAWS มั่งอ่ะครับ
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 20 ต.ค. 2008, 01:36 น.
อ้างคำพูดจาก: icez เมื่อ 11 ต.ค. 2008, 14:42 น.
ตอนแรกงงคำว่า http access อ่านไปอ่านมา หมายถึง .htaccess ใช่มั้ยครับ :08a:
http access เป็นคำกว้างๆครับ เหมือนเราพูดว่า web server configuration file
บน unix/linux ก็เป็นไปตาม Apache Authentication, Authorization and Access Control (http://httpd.apache.org/docs/2.0/howto/auth.html)
ของ windows ก็มีอีกแบบ เช่น Configuring HTTP Access to SQL Server 2005 Analysis Services (http://www.microsoft.com/technet/prodtechnol/sql/2005/httpasws.mspx)
ส่วนมากบน unix/linux ก็เป็นไฟล์ .htaccess เป็นหลัก เหมือนที่คุณ icez บอก
ที่ผมไม่ได้เน้นที่ไฟล์ .htaccess  เพราะเทคนิคของ http access อาจมีหลากหลายวิธี(เพราะเขายัง implement ไม่เต็มรูปแบบ)
กล่าวโดยสรุปก็คือการเข้าถึง(เข้าใช้)ผ่านโปรโตคอล http ครับ

(เหมือน web config file,ถ้า apache ก็เป็น httpd.conf หรือ lighttpd ก็เป็น lighttpd.conf)

อ้างอิง
ปล. แอบทำ script สร้าง lighttpd.conf ของ plesk ไว้เรียบร้อยแล้ว
เอาไปขาย plesk เลยครับ  :52:
ไม่ก็แจกฟรี (ผมแนะนำว่าเวปของต่างประเทศก็ดีเหมือนกัน หรือ ไม่ก็เวปแถวๆนี้
เพราะรู้สึกคนไทยใช้และเคลมเป็นของตัวเองเยอะเกินไป ทำให้ผู้สร้างงานหมดกำลังใจไปตามๆกัน)

อ้างคำพูดจาก: EaRthCh!E* เมื่อ 11 ต.ค. 2008, 15:27 น.
ถ้า YAWS มีคนสนใจมาช่วยพัฒนาตัวเสริมต่างๆ ก็น่าเล่นกว่า nginx สิครับ
ถ้างั๊น ทำไม นักพัฒนาไม่หันไปพัฒนาฝั่ง YAWS มั่งอ่ะครับ
ตอนนี้ YAWS ใช้ PHP ได้แล้ว ก็คงสนุกขึ้น
แต่ยังไม่นิยมใช้ เพราะปัจจุบันคนทำเวป ใช้ mod กันเยอะมากๆ เช่น rewriter..etc
รวมถึง YAWS เขียนด้วย erlang เลยไม่ค่อยมีกล้าเสี่ยงนัก(เช่น ทำๆไป คิดจะปรับแต่ง หาจุดอ่อน ..ฯลฯ

note: บทความผมหยุดไปเลย
1.สุขภาพแย่ลงเยอะ(จะกล่าวถึงเมื่อ mybuddy3.0 ออกตัว)
2.ไปเป็นผู้บริหาร ซึ่งมีเรื่องปวดหัวมากกว่าเรื่องเทคนิค(เมื่อครบวาระ/หรืออาจไม่ครบ ก็คงออกมาสอนหนังสือ ศึกษาเรื่องเทคนิคต่อ จะสนุกกับชีวิตกว่า)
ผมต้องขออภัยที่ไม่ได้มาต่อบทความนี้เลย(ดองเค็ม) จะหาโอกาสมาต่อให้ครับ
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: Earthchie เมื่อ 21 ต.ค. 2008, 16:10 น.
 :46: ขอให้ลุงซันสุขภาพแข็งแรงๆนะครับ สู้ๆครับ ^^
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 21 ต.ค. 2008, 23:57 น.
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 21 ต.ค. 2008, 16:10 น.
:46: ขอให้ลุงซันสุขภาพแข็งแรงๆนะครับ สู้ๆครับ ^^
ขอบคุณมากครับ
กำลังพยายามปรับตัว(แต่แสนยากเหลือเกิน เข้าใจความหมายว่า "ไม้แก่ดัดยาก" ได้ดีเลย ตอนที่ตัวเองนิสัยไม่ดี ไม่รักสุขภาพพอเนี่ยแหละ)
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: peon เมื่อ 06 เม.ย. 2011, 22:24 น.
กระจู๋นี่มีไปต่อที่ไหนป้าว อยากอ่านต่อจังคับ
ชื่อเรื่อง: ตอบ: ทำอย่างไรให้ระบบทำงานราบรื่น
โพสต์โดย: ลุงซัน เมื่อ 09 เม.ย. 2011, 16:21 น.
กำลังทบทวนว่าจะเริ่มเรียบเรียงใหม่ (อันเก่ากระจัดกระจายเหลือเกิน)  :43: