上篇提到php通過gearman擴充套件呼叫worker時造成的php程序死鎖問題(同步模式),今天簡單總結下與該問題以及gearman原理相關的一些東西。
正好最近在學車,就用生活中駕考的實際例子來說明吧。
考試的基本流程是:學員先申請,看當前是否有考試名額,報名成功則到駕考中心參加考試,上車前先在駕考中心的候考廳排隊,當輪到自己的時候上車進行考試。
與gearman的原理相對應的如下圖所示:
假設有6個考試名額(php-cgi程序)、3輛考試車輛(worker程序);
有2個學員前來報名參加考試(向php伺服器發起了兩個http請求);
此時為理想的正常情況,資源充足,啥都別說了,直接上車吧,妥妥的~
————————————————— 休息一哈 —————————————————————
話說那倆人正在車上不慌不忙倒樁呢,突然又有3個學員以迅雷不及掩耳到鈴兒響叮噹之勢前來報名參加考試:
厄……不錯,名額還有,走著!
abc三人來到駕考中心一看,還有乙個車空閒,甲當即衝到了前面;
木辦法啊,bc二人只好乖乖在侯考大廳排隊等著
此時對於請求者來說相當於掛起狀態,系統開始出現延遲等現象,需要及時考慮解決方案:
如果worker的邏輯耗時太離譜,那就得趕緊查詢原因,減少耗時;
如果worker耗時正常,那說明處理能力不足,趕緊增加worker吧。
————————————————— 休息一哈 —————————————————————
可是名額就還剩1個,被d搶先了一步,d也到侯考大廳排隊等上車了;
喏,ef只能一人吃了個502 bad gateway的閉門羹(注:圖中504為筆誤,下同);
此時如果還不解決worker瓶頸的問題,那麼一段時間後請求會將前端client占用完,這時系統就不僅僅是訪問緩慢了,一些使用者已經開始出現502錯誤的頁面。
————————————————— 另外的情況 —————————————————————
一般來說都是client數量多於worker,但如果worker富裕client緊張呢?
很明顯,瓶頸直接卡在源頭,worker再多也木有用。
果斷增加client吧~
BCP簡要說明
bcp是sybase公司提供專門用於資料庫表一級資料備份的工具。一般存放在所安裝的ase或者open client 的bin目錄中。12版本以前的ase,bcp存放目錄為 sybase bin 12版本 含12版本 以後存放目錄為 sybase ocs 12 x bin 其中 sybase為syba...
initcall debug簡要說明
linux version 3.10.40 1.使用說明 documentation kernel parameters.txt中的說明如下 initcall debug knl trace initcalls as they are executed.useful for working out ...
ramoops pstore簡要說明
1.pstore pstore是persistent storage的縮寫。核心發生異常時如果能將日誌等資訊儲存下來不丟失,那麼就可以通過這些資訊來定位問題。不同的平台可以提供的儲存位置不同,例如有些平台支援硬碟,有些不支援。除了平台差異,異常型別也決定了在發生異常時該儲存位置是否還可用。pstor...