[英]Tuning php-fpm, nginx, mysql for high traffic on EC2
我想優化我在EC2上的設置。 CentOS 6,nginx 1.0.15,帶有PHP-FPM的PHP 5.4.4,xcache 2.0.0,mysql 5.5.24-55-log,redis 2.4.10,EC2 High Cpu XLarge(c1.xlarge 8核,7G ram)對於高流量的網站,會在每個請求上進行寫。 產生的網絡請求非常小(javascript代碼段)。
基本上,這是一個100%動態的環境(插入或更新)。 在每個Web請求上,我都需要在memcached中進行快速查找,然后在每個頁面請求中記錄一些屬性。 我在世界各地有數個EC2,每天可幫助處理600M +個請求。 我的想法是,我記錄數據並每小時轉儲一次,以供其他計算機處理。 每台機器每天的處理量約為2000萬。 我嘗試了一些數據存儲,一些注意事項如下:
的MySQL
雷迪斯
實際上,我每秒可以從這台EC2機器和100%的寫入情況中期望多少個請求? 我是否受EC2的磁盤性能或php或mysql的束縛? 我可以配置它使用更多的CPU還是更好地使用它正在使用的資源?
PHP-FPM http://pastebin.com/raw.php?i=9n2cpqrq
NGINX(nginx.conf) http://pastebin.com/raw.php?i=XuVBKr8m
我真的認為您需要研究將架構組件拆分到不同的系統中。 例如,您注意到您在臨時存儲上運行MySQL。 對於MySQL來說,這很奇怪,因為您的數據很容易丟失。 您是否考慮過使用Amazon RDS?
同樣,您可以考慮將ElasticCache或SimpleDB用作鍵值存儲來代替REDIS。
我想我的主要觀點是,如果您要處理的是大量請求,則實際上應該將服務堆棧分解為多個可以相互獨立擴展的層。
關於性能的一件事,請不要使用EBS驅動器,除非作為RAID並具有專用吞吐量。 與短暫的相比,它們確實很爛。 我將hi1.4xlarge用於其SSD上的臨時驅動器的數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.