本公司有請廠商開發一套管理系統,系統應該是用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,我相信這樣的網路頻寬應該是夠用才對,怎麼會這樣慢,請問有沒有其他先進有過這樣的經驗,應該要怎樣才能改善呢?
建議樓主提供詳細一點的資料, 大家才好幫忙判斷.
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.有詢問過,但費用公司有點不能接受
E5200?
你RAID 5是用哪種RAID卡做的?
我的RAID卡是UPtech 的SR410 4Port磁碟陣列卡
測試近端與遠端的執行效率
觀察Server與Client的各項效能執行指標
你才可以瞭解問題點在哪邊
瞭解問題點才有所謂的解決方案
先在A點看一下CPU loading吧,慢不一定就是網路慢,程式沒寫好把CPU吃死了也會慢到讓人吐血的....
我還是覺得是網路的問題~~
就算你用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數量的考量,會是關鍵)
kaku0419提到:
建議架構Terminal Server來解決您的問題,會比較實際~~
(不過外點Client數量的考量,會是關鍵)
R U sure....網路頻寬不夠的話,跑terminal service(或是remote desktop...)只會更慘而已....
網路頻寬不夠的話,跑terminal service(或是remote desktop...)只會更慘
所以我才會說"Client數量的考量,會是關鍵",
目前手上的案子,100M/10M配50M/5M VPN * 2 , 15個Client,沒有問題...
kaku0419提到:
所以我才會說"Client數量的考量,會是關鍵",
那您前面覺得是網路的問題(一般就是指頻寬吧),後面又提出一個相對而言比較吃頻寬的方案,豈不是自相矛盾嗎....BTW,發問者根本連server是不是真的忙不過來都沒自己想辦法確定,光這樣就要人隔空抓藥會不會太誇張了點....
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是不是真的忙不過"之有
kaku0419提到:
意思應該是在B點、C點連回A點使用管理系統時會很慢,不代表在A點執行時會慢,
要是在A點本身執行速度正常,那何來"server是不是真的忙不過"之有
問題是原文也完全看不出來有在A點測試過吧....
cmwang提到:
問題是原文也完全看不出來有在A點測試過吧
假設如果連A點都有問題,那J大根本就不需要提及B點、C點的相關網路架構等事情了吧,是吧~~
kaku0419提到:
假設如果連A點都有問題,那J大根本就不需要提及B點、C點的相關網路架構等事情了吧,是吧~~
是沒錯,但是原文中那一個字看得出有在A點測試過啊....
1.要做主機效能監控(cpu 記憶體 硬碟)
2.要做網路流量監控
3.ap 跟資料庫效能監控
你不知道瓶頸在那裡怎麼做改善.
johnny6211提到:
本公司有請廠商開發一套管理系統,系統應該是用VB.NET寫的
慢又不是你家的專利...不用怕每家都會遇到...
尤其是 [應用系統] 資料 ..萬筆變成 ..百萬筆 ..千萬筆以後
你可以找原來開發的廠商
看看他的程式是怎麼抓資料的
我們在改寫台灣最大的A字頭公司 Oracle ERP
發現很都連結幾乎撐爆 Database
因此千萬筆資料的排程工單缺料與替代料狀況表
可以從 8小時調校成 8分鐘或 8秒鐘
我們是 OpenSoure ERP Adempiere 技術轉移顧問
我們是 Oracle ERP SAP ECC 客製化與外圍系統技術顧問
albertachen提到:
慢又不是你家的專利...不用怕每家都會遇到...尤其是 [應用系統] 資料 ..萬筆變成 ..百萬筆 ..千萬筆以後
你可以找原來開發的廠商
看看他的程式是怎麼抓資料的
我們在改寫台灣最大的A字頭公司 Oracle ERP
發現很都連結幾乎撐爆 Database
因此千萬筆...(恕刪)
Skype: Adempiere/Compiere
是啊...術業有傳攻...
SQL進入資料庫效能誰會注意?
程式設計師只要資料正確不懂資料庫不理效能,
資料庫管理員只要使用者沒唉, 不懂程式架構(schema)不理效能, 變成三不管地帶了~~
下"精準SQL"是要配合SQL語法及索引, IO READS (邏輯磁碟讀取區塊)最少, 才能發揮最大效能~~
windows server可在效能監視器下, 看 disk queue length 是否經常保持2以下; 若是經常維持在超過2以上, 代表磁碟效能不足, 往往是因讀取太多所造成的~~
建議用Terminal Server
之前也遇到過用VPN慢到不行
用Terminal Server就很快
只是Terminal Server得安全性就............
Client/Server架構理論上只傳資料,如果只是查詢客戶資料不應該這麼慢,除非查詢時,程式是將所有客戶資料傳到Client端,可以測試一下,查詢"所有客戶資料"與查詢"某筆客戶資料",看速度是不是一樣慢,如果是可能就是上述問題,這就要看廠商的設計能力了,如果廠商沒辦法改進,用遠端桌面不失為另一種解決方式,但難免要多管理與維護成本
看到大家熱心的討論與回答,但卻不見樓主回應或作任何回復,實在有點失望....
樓主的問題描述的太過籠統,速度慢有太多可能因素,需逐層分析排除來找出真正原因,
建議樓主
1.先測試在A點與B、C點執行速度差異,驗證是主機(程式)原因還是網路原因所造成
2.若A點正常,只在B、C點會慢,再進一步驗證A點與B、C點的真正傳輸速度,看是頻寬不足還是線路不穩
3.而樓主也自認頻寬應讓是足夠的,那就驗證一下使用時佔用多少頻寬
...
主機問題、系統問題、程式問題、操作問題、網路設備問題、設定問題、架構問題、線路問題、...
有足夠的功課,方能找出原因所在,也才能讓大黟幫忙找出解決方法,才不會辜負大家的熱情,
或許這些樓主都有答案,也已判斷出問題可能出哪裡,但不說出,大夥只能逐一猜測所有可能原因。