借Gearman簡要說明系統可用性問題

2021-08-26 19:48:05 字數 1430 閱讀 2923

上篇提到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...