iT邦幫忙

0

公司的管理系統執行速度很慢,如何改善?

本公司有請廠商開發一套管理系統,系統應該是用VB.NET寫的,用的是Server-Client架構,公司有三個地點(假設為A點、B點、C點),各點分別裝置一台D-Link DI-804HV的VPN路由器來建立各點間的通道,管理系統Server主機放於A點,其他B點、C點為我們的辦公地點(Client端電腦皆放置於這兩點),B點、C點皆連到A點的Server端來執行管理系統。
目前遇到的問題就是執行速度很慢,例如要開啟一個客戶的基本資料都要5秒以上,或是開啟其他功能也都要10秒以上,目前主機端(A點)的網路是使用50M/10M,B點、C點的網路是使用20M/5M,我相信這樣的網路頻寬應該是夠用才對,怎麼會這樣慢,請問有沒有其他先進有過這樣的經驗,應該要怎樣才能改善呢?

4
lionab
iT邦新手 2 級 ‧ 2012-09-28 09:59:38
最佳解答

建議樓主提供詳細一點的資料, 大家才好幫忙判斷.

  1. VB.NET主機的資料量及硬體配備(RAM, CPU, RAID)可以說明一下嗎? 系統最慢時, 主機上的CPU使用率平均落在%?
  2. 從 B及C點, Ping 到 A點的回應時間是幾個 ms?
  3. 主機放在A點的話, 從A點的某台Client電腦直接連VB.NET系統是快還是慢? 可以釐清是不是網路的問題.
  4. 既然系統是委託廠商寫的, 請廠商來診斷是最快的.即使是專業廠商, 也可能請剛畢業的大學生寫你們家的專案.
  5. 如果從A點連系統也一樣慢, 則可能SQL Server索引要調整一下.或是.net撈資料的方法不正確, 如樓上hon2006大大說的一樣.
    6.如果A點很快, 只有BC點很慢, 則可能是A點的D-Link DI-804HV的VPN路由器有問題,這個可以找幫你們規劃這樣網路架購或賣D-Link DI-804HV給你們的廠商來診斷.
  6. D-Link DI-804HV的VPN路由器 一台才 二千多元, 如果有效能上的問題也不奇怪.可以問問其他網友的公司都用哪一款比較穩定.
  7. 或是可以考慮用中華電信或其他二類電信公司的 MPLS架構, 效能應該會比自架VPN快一些.您可以詢問貴公司配合的電信公司.
看更多先前的回應...收起先前的回應...
tonyfunet iT邦新手 5 級 ‧ 2012-10-01 09:55:05 檢舉

我也有BCD三點對A點以VPN方式架構的網路經驗,我蠻認同lionab的說法!

Sorry這麼晚回應
1.主機的等級是Pentium Dual-Core E5200 2.5Ghz,記憶體4G,系統是Server 2008 standard,系統安裝在一500G獨立硬碟,其他有4顆1T硬碟做RAID5放資料庫檔案,在B、c點執行管理系統,是一直都慢,主機的CPU大概都在10%以下
2.從B及C點,Ping到A點的回應時間是37~38ms
3.有試過,這樣是比較快的
4.我們的廠商有點不是很專業,他們也沒辦法給個很確定的答案
5~7.有猜是D-Link路由器的問題,但一直在想辦法借路由器來測試,因為萬一買新的但無改善那就糟糕了,等測試結果出來再跟各位報告
8.有詢問過,但費用公司有點不能接受

小成 iT邦高手 10 級 ‧ 2012-10-02 13:46:09 檢舉

E5200?
你RAID 5是用哪種RAID卡做的?

我的RAID卡是UPtech 的SR410 4Port磁碟陣列卡

4
u8526425
iT邦大師 1 級 ‧ 2012-09-27 10:47:33

測試近端與遠端的執行效率
觀察Server與Client的各項效能執行指標
你才可以瞭解問題點在哪邊
瞭解問題點才有所謂的解決方案

4
cmwang
iT邦高手 1 級 ‧ 2012-09-27 11:09:12

先在A點看一下CPU loading吧,慢不一定就是網路慢,程式沒寫好把CPU吃死了也會慢到讓人吐血的OrzOrz....

在A點的主機上執行管理系統會比在B、C兩點執行快很多,而且我有觀察CPU使用率,平均在50%以下

4
IT緣來爐主
iT邦新手 2 級 ‧ 2012-09-27 11:25:05

我還是覺得是網路的問題~~
就算你用20M/5M和50M/10M作VPN,就算是同一家ISP,可是中間要經過多顆Router,
ISP又不會保證你A B C之間的頻寬,頂多是到你當地的ISP機房罷了.
除非你改用MPLS VPN還要保證頻寬,不過費用會貴的嚇人~~

你ERP的架構是Client-Server架構,不是N-Tier (Client-AP-DB ,可在B C點建立AP
Server),我看要快很難!!

建議架構Terminal Server來解決您的問題,會比較實際~~
(不過外點Client數量的考量,會是關鍵)

看更多先前的回應...收起先前的回應...
cmwang iT邦高手 1 級 ‧ 2012-09-27 17:04:38 檢舉

kaku0419提到:
建議架構Terminal Server來解決您的問題,會比較實際~~
(不過外點Client數量的考量,會是關鍵)

R U sure疑惑....網路頻寬不夠的話,跑terminal service(或是remote desktop...)只會更慘而已OrzOrz....

網路頻寬不夠的話,跑terminal service(或是remote desktop...)只會更慘

所以我才會說"Client數量的考量,會是關鍵",
目前手上的案子,100M/10M配50M/5M VPN * 2 , 15個Client,沒有問題...

cmwang iT邦高手 1 級 ‧ 2012-09-28 09:11:55 檢舉

kaku0419提到:
所以我才會說"Client數量的考量,會是關鍵",

那您前面覺得是網路的問題(一般就是指頻寬吧),後面又提出一個相對而言比較吃頻寬的方案,豈不是自相矛盾嗎Orz....BTW,發問者根本連server是不是真的忙不過來都沒自己想辦法確定,光這樣就要人隔空抓藥會不會太誇張了點OrzOrz....

1.我不覺得用Terminal Service是一個相對而言比較吃頻寬的方案,在操作上反而是吃相對穩定的頻寬,它僅在列印和存檔在Local端磁碟時才會吃大量的頻寬.
我是不確定J大的系統在執行上會佔掉多少頻寬,會不會比Termail Service更耗頻寬,會不會產生大量的Sessions,只能請他自己監測...
而且用Terminal Service有一個好處,在網路不穩定發生瞬斷時,不會造成系統軟體發生Error,最多重新連線又可以看到原來的畫面.
當然,有錢點改用Citrix 效能上會更好!!
2.在J大的描述中

目前主機端(A點)的網路是使用50M/10M,B點、C點的網路是使用20M/5M,我相信這樣的網路頻寬應該是夠用才對

意思應該是在B點、C點連回A點使用管理系統時會很慢,不代表在A點執行時會慢,
要是在A點本身執行速度正常,那何來"server是不是真的忙不過"之有

cmwang iT邦高手 1 級 ‧ 2012-09-28 11:03:30 檢舉

kaku0419提到:
意思應該是在B點、C點連回A點使用管理系統時會很慢,不代表在A點執行時會慢,
要是在A點本身執行速度正常,那何來"server是不是真的忙不過"之有

問題是原文也完全看不出來有在A點測試過吧OrzOrz....

cmwang提到:
問題是原文也完全看不出來有在A點測試過吧

假設如果連A點都有問題,那J大根本就不需要提及B點、C點的相關網路架構等事情了吧,是吧~~

cmwang iT邦高手 1 級 ‧ 2012-09-28 14:06:39 檢舉

kaku0419提到:
假設如果連A點都有問題,那J大根本就不需要提及B點、C點的相關網路架構等事情了吧,是吧~~

是沒錯,但是原文中那一個字看得出有在A點測試過啊OrzOrz....

根據描述作猜測不行嗎??臉紅

cmwang iT邦高手 1 級 ‧ 2012-09-28 15:24:26 檢舉

kaku0419提到:
根據描述作猜測不行嗎??

反正發問人看來是射後不理了,所以也沒啥好猜了吧偷笑偷笑....

Sorry,這麼晚回應,有在A點測試過,其速度上是正常的,比在B、C上快很多,而且基於比較長遠的考量,我比較不考慮用Terminal Service的方式

4
ycl8000
iT邦高手 1 級 ‧ 2012-09-27 11:47:36

或許可以考慮用遠端桌面連線的方式操作系統.

Client端電腦不少,這個方式可能不適合

4
hon2006
iT邦大師 1 級 ‧ 2012-09-27 12:47:45

1.要做主機效能監控(cpu 記憶體 硬碟)
2.要做網路流量監控
3.ap 跟資料庫效能監控
你不知道瓶頸在那裡怎麼做改善.

player iT邦大師 1 級 ‧ 2012-09-27 18:42:24 檢舉

資料分頁是在資料庫裡做的? 還是資料全撈, 再到 AP裡去處理資料分頁? 前者比後者快很多
有用暫存資料表嗎? 這個也會影響效能 (以SQL Server為例, 全域贊存資料表, 遠比 區域贊存資料表 快很多, 但要留意 暫存資料表同名 的問題)

在主機效能監控中,只有磁碟這部份有時比會飆的蠻高的,我是使用4顆硬碟做RAID 5放資料庫,,系統裝在另一個HD上,會是因為此原因造成硬碟使用率飆到100%嗎?

2
Albert
iT邦高手 1 級 ‧ 2012-09-27 13:56:45

johnny6211提到:
本公司有請廠商開發一套管理系統,系統應該是用VB.NET寫的

慢又不是你家的專利...不用怕每家都會遇到...

尤其是 [應用系統] 資料 ..萬筆變成 ..百萬筆 ..千萬筆以後

你可以找原來開發的廠商
看看他的程式是怎麼抓資料的
我們在改寫台灣最大的A字頭公司 Oracle ERP
發現很都連結幾乎撐爆 Database
因此千萬筆資料的排程工單缺料與替代料狀況表
可以從 8小時調校成 8分鐘或 8秒鐘
我們是 OpenSoure ERP Adempiere 技術轉移顧問
我們是 Oracle ERP SAP ECC 客製化與外圍系統技術顧問

Albert iT邦高手 1 級 ‧ 2012-09-27 13:57:56 檢舉

albertachen提到:
慢又不是你家的專利...不用怕每家都會遇到...

尤其是 [應用系統] 資料 ..萬筆變成 ..百萬筆 ..千萬筆以後

你可以找原來開發的廠商
看看他的程式是怎麼抓資料的
我們在改寫台灣最大的A字頭公司 Oracle ERP
發現很都連結幾乎撐爆 Database
因此千萬筆...(恕刪)

Skype: Adempiere/Compiere

charmmih iT邦研究生 5 級 ‧ 2012-10-02 12:34:11 檢舉

是啊...術業有傳攻...
SQL進入資料庫效能誰會注意?
程式設計師只要資料正確不懂資料庫不理效能,
資料庫管理員只要使用者沒唉, 不懂程式架構(schema)不理效能, 變成三不管地帶了~~

下"精準SQL"是要配合SQL語法及索引, IO READS (邏輯磁碟讀取區塊)最少, 才能發揮最大效能~~

windows server可在效能監視器下, 看 disk queue length 是否經常保持2以下; 若是經常維持在超過2以上, 代表磁碟效能不足, 往往是因讀取太多所造成的~~

4
davidliu9116
iT邦研究生 3 級 ‧ 2012-09-28 09:42:35

建議用Terminal Server
之前也遇到過用VPN慢到不行
用Terminal Server就很快
只是Terminal Server得安全性就............

如您所說,所以比較不考慮Terminal Server

4
idol
iT邦新手 5 級 ‧ 2012-10-01 09:48:45

Client/Server架構理論上只傳資料,如果只是查詢客戶資料不應該這麼慢,除非查詢時,程式是將所有客戶資料傳到Client端,可以測試一下,查詢"所有客戶資料"與查詢"某筆客戶資料",看速度是不是一樣慢,如果是可能就是上述問題,這就要看廠商的設計能力了,如果廠商沒辦法改進,用遠端桌面不失為另一種解決方式,但難免要多管理與維護成本

查詢"所有客戶資料"與查詢"某筆客戶資料"都是一樣慢,其實我很懷疑廠商的寫法有問題,但廠商基於他們本身的利益,他們推說是我們主機效能和網路架構的問題,所以我們現在就是得想辦法釐清問題責任

charmmih iT邦研究生 5 級 ‧ 2012-10-02 11:16:23 檢舉

johnny6211提到:
查詢"所有客戶資料"與查詢"某筆客戶資料"都是一樣慢

建一個索引就可以解決的事啊....

說實在, 很多軟體廠商是不會建索引的, 或是索引建得一踏糊塗的....

6
jack68
iT邦新手 5 級 ‧ 2012-10-01 10:56:39

看到大家熱心的討論與回答,但卻不見樓主回應或作任何回復,實在有點失望....
樓主的問題描述的太過籠統,速度慢有太多可能因素,需逐層分析排除來找出真正原因,
建議樓主
1.先測試在A點與B、C點執行速度差異,驗證是主機(程式)原因還是網路原因所造成
2.若A點正常,只在B、C點會慢,再進一步驗證A點與B、C點的真正傳輸速度,看是頻寬不足還是線路不穩
3.而樓主也自認頻寬應讓是足夠的,那就驗證一下使用時佔用多少頻寬
...
主機問題、系統問題、程式問題、操作問題、網路設備問題、設定問題、架構問題、線路問題、...
有足夠的功課,方能找出原因所在,也才能讓大黟幫忙找出解決方法,才不會辜負大家的熱情,
或許這些樓主都有答案,也已判斷出問題可能出哪裡,但不說出,大夥只能逐一猜測所有可能原因。

實在很抱歉這麼晚回覆,如您所說我有使用Bitmeter來監測頻寬,以流量最高的那一個小時來講共上傳400多MB的資料,平均的上傳速率為116KB/秒,我的主機端上傳速率為10M,所以應該是夠用,還是大家有更好的監測頻寬軟體推薦,可以看出當下的最高流量是多少?

我要發表回答

立即登入回答