91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nginx性能優化調優之google-perftools

發布時間:2020-03-07 12:42:40 來源:網絡 閱讀:826 作者:帥小欣 欄目:系統運維

什么是google-perftools?
google-perftools是google公司開發的一款針對 C/C++ 程序的性能分析開源工具,使用該工具可以對 CPU 時間片、內存等系統資源的分配和使用進行分析
google-perftools包含四個工具,分別是:TCMalloc、heap-checker、heap-profiler和cpu-profiler,其中我們本次需要的一個工具TCMalloc是google-perftools的其中一個工具,用于優化內存分配的效率和速度,幫助在高并發的情況下很好的控制內存的使用

運維為什么要使用google-perftools?
使用google開發的google-perftools優化nginx和mysql的內存分配效率和速度,幫助在高并發的情況下控制內存的使用。但是,nginx的內存占用其實是很少的,一個進程占用的內存大概只有12M左右,所以google-perftools對nginx的優化效果可能不太明顯

什么是TCMalloc工具?
上面已經說過TCMalloc是google-perftools的一個工具與標準的glibc庫的Malloc相比,TCMalloc庫在內存分配效率和速度上要高很多,這在很大程序上提高了服務器在高并發情況下的性能,從而降低系統的負載如何為Nginx添加TCMalloc庫支持,要安裝TCMalloc庫,需要安裝libunwind和gperftools兩個軟件包,libunwind庫為基于64為CPU操作系統的程序提供了基本函數調用鏈和函數調用函數寄存器功能,32位操作系統不需要安裝。

通過上面的三連問我們已經大致了解google-perftools是什么玩意了,那么下面我們將進行如何安裝和使用

安裝編譯工具:
yum -y install gcc make
yum -y install gcc gcc-c++

安裝libunwind:
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gz
tar zxvf libunwind-0.99.tar.gz
cd libunwind-0.99/
CFLAGS=-fPIC ./configure --prefix=/usr
make CFLAGS=-fPIC
make CFLAGS=-fPIC install

安裝google-perftools:
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz
tar zxvf gperftools-2.7.tar.gz
cd gperftools-2.7
./configure --enable-frame-pointers --enable-libunwind --with-tcmalloc-pagesize=32

./configure --enable-frame-pointers
make && make install
注:如果是64位系統,需要先安裝libunwind,再在configure gperftools的時候,添加--enable-frame-pointers參數

安裝nginx并添加參數
安裝nginx省略,如果nginx是在安裝google-perftools前已經安裝了,那么需要考慮是否平滑升級及平滑重啟,平滑升級加入參數即可
例: ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-google_perftools_module

上面雖然已經安裝好,但是還是不能夠使用,因為沒有在nginx配置文件中加入這個模塊

1.添加線程目錄
mkdir /tmp/tcmalloc
chmod 0777 /tmp/tcmalloc
2.做軟連接或引用動態庫
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
3.修改nginx.conf配置文件,在pid行添加以下信息,表示開啟這個模塊
google_perftools_profiles /tmp/tcmalloc;

然后啟動或重啟nginx

驗證即可
nginx 44112 nobody 10w REG 8,4 0 1044489 /tmp/tcmalloc.44112
一個線程會有一個記錄文件,由于我只開了一個線程,所以只有一個記錄文件

擴展:
啟動nginx,發現缺少libprofiler.so.0動態庫的支持
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libprofiler.so.0: cannot open shared object file: No such file or directory
這是因為perftools是通過Linux的LD_PRELOAD達到java應用程序運行時,當調用malloc時換用它的libtcmalloc.so
查找系統下是否有libprofiler.so.0動態庫
whereis libprofiler.so.0
libprofiler.so: /usr/local/lib/libprofiler.so.0 /usr/local/lib/libprofiler.so
由于不在nginx程序查找的目錄下,所以需要創建軟鏈接
評估缺少的動態庫支持,可通過ldd /usr/local/nginx/sbin/nginx的方式,查看"not found"部分。
ln -s /usr/local/lib/libprofiler.so.0.4.18 /lib64/libprofiler.so.0

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扶余县| 罗山县| 濉溪县| 饶平县| 道真| 武安市| 大城县| 永寿县| 曲水县| 成武县| 乌海市| 上思县| 股票| 彭州市| 河北省| 广宁县| 中卫市| 阳城县| 珠海市| 盐亭县| 新兴县| 阿瓦提县| 张家港市| 晴隆县| 福泉市| 佛冈县| 吉水县| 登封市| 迁安市| 达孜县| 竹溪县| 苏州市| 大同县| 元阳县| 济源市| 阿鲁科尔沁旗| 哈巴河县| 平利县| 乐陵市| 宝山区| 宾川县|