php 并发 100 压测,简单PHP把握站点并发数
一般來說,一個項目中老是會有一些較難處理懲罰的營業,比如營業錯雜花樣繁多的搜刮,應用搜刮體系如sphinx,lucence等來處理懲罰的話,數據源的若是變更過快(如頂、踩、瀏覽數之類),則起推薦數據的頻率就較難衡量,別的無確搜刮或排序。所以一般景象下的做法是經由過程DB進行搜刮,并且除了盡量將營業分化到法度層面外,還會在DB前加一層cache。然則如許做也有不少已知的弊病:
1、實際上很多營業無法放到通俗的PHP中處理懲罰,如一些較錯雜的排序、篩選,經由過程通俗的PHP來實現的話效力還不如MYSQL。
2、cache的射中率也不好包管,希罕是對一些應用關鍵詞進行查詢的營業,關鍵詞變更太多。
若是碰到惡意刷的話,DB辦事器輕易直接掛掉,是以我們可以在法度層面上加一層限制器,限制并發數,該限制器具備以下特點:
1、高效(空話么,不然直接刷限制器就刷爆了)。如今是應用memcache進行原子操縱計數,可以擴大成應用其他辦法。
2、正確到action層。可以零丁限制單個頁面。
3、便利。見仁見智吧
4、本錢低廉。包含研發本錢與硬件本錢。
按照壓測,本來只能100并發的搜刮功能,限制100后,壓測800成果正常。
代碼如下:
/
搜刮
/
public function search(){
//增長計數器功能,跨越次數則返回體系繁忙
¥viewlimiter = Library::load(viewlimiter);
//接見限制器的名稱,請用controller+action,盡量單個頁面對峙獨一
¥limitName = search_search;
//最多同時接見數
¥limit = 100;
//若是跨越數量則直接返回
if(!¥viewlimiter->check(¥limitName, ¥limit)) {
ajaxOutput(0, ¥this->lang->line(multi_search_limit));
}
/----錯雜變態的營業邏輯-----/
¥xxxModel->search(¥params);
}
//end func
?>
擴大話題:
1、若是該營業被刷,可能導致正常用戶無法查看內容。 -- 這個題目要解決只能是從體系層面去操縱,可見這邊:http://johnsteven.blog.51cto.com/2523007/818209
2、限制數好能與緩存射中率相連絡,必然局限內主動變革限制數,進步限制的精準度。 -- 這個后期可以進行研究,與緩存類相連絡
3、按照辦事器負載進步履態把握。 -- 涉及到底層及辦事器權限,研究本錢較高,有愛好的話可以研究。
注:
本文只申明思路,具體代碼因為一些原因臨時不開放文藝不是炫耀,不是花哨空洞的文字堆砌,不是一張又一張的逆光照片,不是將旅行的意義轉化為名牌包和明信片的物質展示;很多時候它甚至完全不美——它嘶吼、扭曲,它會痛苦地抽搐,它常常無言地沉默。——艾小柯《文藝是一種信仰》
總結
以上是生活随笔為你收集整理的php 并发 100 压测,简单PHP把握站点并发数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PUSHA/PUSHAD POPA/PO
- 下一篇: PHP中使用八进制 可以在前面加,PHP