PUPPET生產拾遺 1

2021-10-03 13:52:16 字數 1445 閱讀 2913

目前產線伺服器數量大約高峰在1.6-1.8w臺vm+bm,平時在1.2w左右, 批量同步的時候會發生非常嚴重的驚群效應,有時候一台主機可能6小時都不會成功同步一次,可以做一些調整避免類似情況。

版本

之前產線使用的是puppet3,相比之前puppet2來說效能已經提高了50%,但在使用過puppet4之後只能感嘆4真香,更別提現在的5了,所以選擇puppet的時候盡量還是選擇高版本的puppet,雖然客戶端效能提高不大,但master端還是提高的非常給力的。

併發

但即使選擇了高版本的puppet,也不過是提高了單個程序的效能,ruby預設的webrick http 實在不適合產線的使用,所以為了使puppet 可以在單台主機上實現高併發,可以使用ruby的passenger ,這個類似python的uwsgi,在配合nginx,可以使單台master的效能得到充分利用。

gem local install rake rack passenger
nginx安裝可以使用passenger-install-nginx-module ,不過建議還是原始碼安裝,

cat /opt/nginx/conf/nginx.conf

passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19; #指定passenger的root目錄,可以使用passenger-config –root得到

passenger_ruby /usr/bin/ruby; #指定ruby命令的執行路徑

passenger_max_pool_size 15; #定義puppetmaster動態呼叫的最大程序數量

proxy_buffer_size 4000k;

proxy_buffering on;

proxy_buffers 32 1280k;

proxy_busy_buffers_size 17680k;

client_max_body_size 10m;

client_body_buffer_size 4096k;

server

橫向擴充套件就是在多個passenger+puppet 前面加個slb,這個就不再說了,太基本了

配置

上面提到的驚群效應,客戶端也可以通過一些配置進行修改,puppet預設的同步週期是半小時,可以根據時間修改,修改後可以在每次同步時間後加個隨機數,在隨機數內進行同步,避免大併發在同乙個時間內進行同步而導致的失敗

面試拾遺 1

本文用來把我面試時遇到的沒有弄明白的問題記錄下來。一 資料庫的normalization與denormalization normalization的目的之一是減少冗餘的過程,之二是方便資料庫查詢語言的使用。什麼叫做方便資料庫查詢語言的使用呢?也就是消除update,insertion及deleti...

asp知識拾遺

最近做的乙個小 碰到了許多問題,能解決的都解決了,還有的沒辦法就找了替代的解決辦法.下面收集一下 1 在選擇了一系列的checkbox後的提交表單提交後,會獲取到name1,逗號,空格,name2,逗號,空格,結果,系統需要獲取這些值,我用了以下 實現.uname request.form user...

Linux同步拾遺

一般情況下,執行緒在主題函式退出的時候會自動終止,但同時也可以因為接收到另乙個執行緒發來的終止請求而強制終止。執行緒取消的方法是向目標執行緒發cancel訊號,但如何處理cancel訊號則由目標執行緒自己決定,或者忽略,或者立即終止,或者繼續執行到cancelation point 取消點 由不同c...