2017年11月22日 星期三

Use numactl to enhance performance or to eliminate bottleneck

Example on using numactl utility to perform bandwidth test with GPU.

Below is the numa architecture for my server hardware.


Running regular operation and limit the resource dedicated from CPU0. Bandwidth is around 11850~12867 MB/s, H2D and D2H


Changing memory resource accessing from CPU1 group. Bandwidth is dropping to lower performance result, approximately at 6669~7175MB/s



Conclusion:
While performing test, using correct numa and understanding hardware architecture is extremely important. It may impact the performance result if you run the benchmark utility for certain PCIe device under particular CPU group. I saw lots of cases reported from clients and asked the solutions. In many cases with DP motherboards, customer installed PCIe cards in 2nd CPU and ran benchmark utility for overall result. The default of OS will start from 1st CPU and it may get into trouble.

2015年7月8日 星期三

BBU/SuperCAP進入充放電時,效能大不同。

先必須了解什麼是 Write-Back 與 Write-Through 模式。

LSI/Avago在手冊有其簡易定義。如果要了解更精闢或是更詳細說明,可以搜尋一下網路上很多文章討論。

今天所要探討的是:再搭配 BBU 設定 Write-Back 或 Write-Through,這兩個模式的效能是一樣的嗎
LSI/Avago並沒有說明這點。但說了,當在進入 Learn Cycle DRT模式時,控制器會被切換成 Write-Through cache 模式


有何影響?
我在硬碟壓力測試下,讓 LSI/Avago 控制器進行切換 Write-Back 與 Write-Through。發現差異頗大。


在切換至 Write-Through 模式後,系統的整體效能掉了下來。而切換回去 Write-Back模式,效能又回來了

當然,你也可以寫 script,每隔一段時間就去確認是否被改成Write-Through模式。但是一旦你改成 Write-Back 又沒有電池在保護,如果此時斷電,那很有可能就 Data Lost。
因此採用 MPIO 來分流,避免大量IO讀寫時,系統進入 Write-Through 導致過度負載,而降低整體應用效能。

2015年7月6日 星期一

關閉Skype佔用 80及445 埠

如果常常會需要安裝http、apache、ASP/PHP/JSP等網頁伺服器套件時,會發現有port 80被佔用了。

除了確認是否有大型軟體,例如 能透過網站方式管理的VMware、Supermicro SSM這類型軟體,也不要忘記大家常用的通訊軟體Skype,預設也會佔用 80/445 (http/https)。

關閉Skype使用80/445埠方式,至功能->設定選項->進階->連線,然後把 "使用 80 何 445 連接埠做為額外連入連線" 給取消。然後設定其他可對外使用的連接埠。

note: 如果公司有封閉連接埠,還需要與你的MIS確認哪個是可以使用的,不然Skype會無法使用!

2015年7月3日 星期五

monitorix圖形化監控軟體 - 修改圖像顯示從1天(1day)至1小時(1hour)

monitorix 是採用 rrdtool 圖像顯示模組來產生報表。
如果套用的模組是經過壓密後,或非文字模式顯示,那麼要修改其資料結構或是資料庫是有困難的。
但 monitorix 有一個很奇妙的地方。預設的顯示是1day, 1month, 1year,也就是
使用者能選擇要顯示的報表模式可以是 1天,1個月,1年為基準。但是往往我們在看 performance效能圖,都需要看到 每1秒、每1分鐘、每1小時,那要怎麼改?

monitorix 目前只支援到 1hour,而且需要為 v2.4.1 版本後才能支援。

接著,如果你有注意看monitorix網址的內容,你會發現已下內容
http://IP地址/monitorix-cgi/monitorix.cgi?mode=localhost&graph=all&when=1day&color=black

沒錯,如果要用hour的方式顯示,此時不是改成 when=1hour 喔,是改成 when=hour
http://IP地址/monitorix-cgi/monitorix.cgi?mode=localhost&graph=all&when=hour&color=black

那麼就會得到以下內容,看到沒?單位變成 hour 顯示了。
那可不可以修改首頁內容,方便直接選 hour 的選項?

答案是:可以,但是有限制
為何可以但是又有限制?因為當 monitorix 重啟後,或是系統重新開機,你會發現 index.html 被重新覆蓋掉了

那如何修改 index.html?
修改:
vi /var/lib/monitorix/www/index.html

找到 input type="radio" checked 這字串,複製 <td></td>內的整串內容。
把 value="xxx" 換成 value="hour"
如果要讓預設就直接選取到,請加入 checked 在 name="when"之前。checked請不要重複在1day, 1week, 1year的input內,切記!
示範圖,如下:
修改完成後,重新讀取網頁就會看到 Hourly 的選項了。
點擊OK就可以看到,監控變成每小時顯示模式。



再來,驗證 index.html 是否會因為重啟而回歸原始設定內容。(如果有修改,請先備份 index.html 吧!)

service monitorix restart

再次reload網頁,發現真的會被回歸設定。

其實,也有應對方法。可以透過 crontab 進行每日排程比對檔案大小 ( du )。
只要檔案大小不對,就 cp 之前修改的檔案至 /var/lib/monitorix/www/index.html 進行覆蓋。
如果之後有發現更好的方法,日後會再提供嚕。

2015年7月2日 星期四

monitorix圖形化監控軟體 - 設定監控項目

在安裝完畢後,有些預設的項目可能不是我們所需要的。 此時可以透過修改 monitorix設定檔,來達到我們所需要被監控的裝置或是系統狀態。例如我要顯示特定掛載磁碟的IO狀態。

1. 先查看掛載的磁碟

df
假設要監控 /dev/sda1 的硬碟,查詢 官方文件 的 Filesystem usage and I/O activity 說明,那麼我們需要更動一些設定。

這是預設監控硬碟的內容。


首先,至 monitorix 設定檔案: (預設在  /etc/monitorix/monitorix.conf )

找到 <fs> 設定區域。

<list></list> 之間,有沒有發現為  0 =/, swap, /boot
這就是預先設定監控的項目。此時我們可以加入所要監控的磁區。

加入完成後,重新啟動服務。

service monitorix restart

這時候再回去看看 Filesystem usage and I/O activity,就會出現你所設定的項目在監控中。如圖:

其他設定及修改都大同小異。當然如果覺得圖片格式太小,也可以修改pixel尺寸,但是修改的內容要對應RRDtool設定,避免修改後會出現圖像錯亂的問題。有關rrdtool,可以參考 這裡

(備註: monitorix的預設顯示單位是 1 day,如果要讓它計量單位為 每小時, 每x小時,那麼就要自行修改)。如何修改,請參考這篇,monitorix圖形化監控軟體 - 修改圖像顯示從1天(1day)至1小時(1hour)

2015年7月1日 星期三

monitorix圖形化監控軟體 - 安裝篇

測試人員在撰寫測試報告時候,通常會提供一連串數據資料。
但是如果能用圖片說明,再把data當成reference,那麼就會使報告看起來簡單許多,而不會太多繁瑣文字敘述。

Linux有許多圖形化監控軟體,如 Monitorix、OpenNMP、Observium、Zabbix、Cacti、Collectd、MRTG等。市面上大多免費軟體都是透過 SNMP 方式去監控、也有部分是使用 client agent 然後需要安裝一套 centralize / consolidation 軟體套件去做管理。

首先,先把所需套件安裝起來。
yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple perl-IO-Socket-SSL
這是從官網上的截圖,所需要的套件如下:
說明: 這裡注意一下,有些套件是在DVD2裡。如果出現這個錯誤,可能是你沒有把套件丟去PXE server或是你只有把DVD1的檔案copy到系統,而在做yum install時候找不到。



↓ 下載並且直接進行安裝。
rpm -ivh http://www.monitorix.org/monitorix-3.7.0-1.noarch.rpm

↓ 編輯 httpd 並新增virtualhost。

vim /etc/httpd/conf/httpd.conf
↓ 加入

重新啟動 httpd 與 monitorix 服務
service httpd restart 

service monitorix restart
使用 IE、Firefox、Chrome等,網路閱覽器進行登入。
IP: http://IP_ADDR:8080/monitorix


2015年6月29日 星期一

64位元PXE模式開啟

如果要讓主機板能支援 64位元的 PXE Boot,請至BIOS內設定 network stack -> Enabled.

圖示如下: