A. Web空間100M,支持Asp.net3.5 是靜態網頁嗎
.net framework 3.5就不是靜態網頁啊,你寫個 aspx 頁面傳上去,再打開這個頁面就可以測試出來
B. web 網頁崩潰
最近開發了一個網頁,通過定時查詢後台狀態來監控一個系統平台。但是現在遇到一個問題,就是該頁面在長時間閑置後容易崩潰(刷新後又能正常顯示),發生崩潰時瀏覽器顯示內容如下:
目前的情況是,頁面數據量較大(對應chrome進程的內存佔用在100多M),但是經檢查,整個過程中並沒有出現內存泄露,後台也沒有報錯。我不太確定這是網頁的問題還是瀏覽器在某些場景下(比如內存佔用高)出現的不穩定問題,請問這種問題應該如何解決?
C. webservice 傳輸數據有大小限制嗎
我前幾天在項目中剛寫過webservice傳遞附件,區域網內嘗試過2G的,都可以傳輸成功,包括上傳和下載。
網路上沒有嘗試過,估計會受網速等各種因素的影響吧~
D. web系統一秒處理100個請求可以么
在webconfig裡面配置下,啟用本地調試看看具體錯誤!
E. web發一次請求與資料庫交互多少次合適,如果一次請求中需要交互5次以上,對性能影響多大
單純從交互對系統性能影響的話,肯定是次數越少越好。
從資料庫查詢方面,如果多次查詢的結果與一次查詢的結果一樣,一次查詢的效率正常情況下會高於多次查詢。
現在都使用連接池技術,建立資料庫連接,釋放連接方面的開銷不是很大。
對於你說的一次請求中需要與資料庫交互5次以上的情況,我覺得對性能影響挺大的。 web是並發的,如果一個請求就交互這么多,多個請求時連接池就不夠用了。
感覺你說的這種情況挺另類。
只從你問題的字面上理解,沒法告訴你影響有多大。 性能方面的東西,單純分析是沒有太大作用的。需要真實的數據。
希望能夠幫到你
F. web訪問(如:IIS\APACHTE\TOMCAT)每個會話(打開一個網頁)一般需要多少網路帶寬
像網路知道這樣?還得看是否頻密的訪問了。。。。。如果不頻密,10~20M可以,很頻密可能要100m的
G. Web伺服器性能和站點訪問性能該如何優化
今天小編要跟大家分享的文章是關於Web伺服器性能和站點訪問性能該如何優化?正在從web前端工作的小夥伴們來和小編一起看一看吧!
一、優化思路淺析
要優化Web伺服器的性能,我們先來看看Web伺服器在web頁面處理上的步驟:
1、Web瀏覽器向一個特定的伺服器發出Web頁面請求;
2、Web伺服器接收到web頁面請求後,尋找所請求的web頁面,並將所請求的Web頁面傳送給Web瀏覽器;
3、Web瀏覽器接收到所請求的web頁面內容,並將它顯示出來。
上面三個步驟都關系Web伺服器,但實際Web伺服器性能相關最大的是在第2步,這里Web伺服器需要尋找來自瀏覽器所請求的Web
頁面內容。
我們知道,Web頁面內容有靜態的,也有動態的,靜態的內容,web
伺服器可以直接將結果發回給瀏覽器,對於動態內容,則通常需要交給應用伺服器先處理,由應用伺服器返回結果。
當然,也有Web伺服器本身可以處理動態內容的,例如IIS就可以自已解釋處理ASP,ASP.NET這兩種微軟的動態網頁腳本語言。
從上面簡要的分析里,我們大致可以得到這樣的結論,影響Web頁面訪問的影響因素會有這幾個:
1、Web伺服器從磁碟中讀取靜態頁面內容的速度,也即時間;
2、Web伺服器判定請求內容是靜態還是動態內容的時間;
3、Web伺服器轉發請求給應用伺服器的時間;
4、應用伺服器處理(解釋)動態內容所需的時間;
5、Web伺服器返回Web內容給瀏覽器的響應時間;
6、Web伺服器接收來自瀏覽器請求的處理性能;
7、Web訪問請求數據在網路上傳輸的時間:包括從瀏覽器到伺服器,和從伺服器到瀏覽器兩部分;
8、瀏覽器本地計算和渲染Web內容的時間,即接收內容後展現內容的時間。
上面8項很容易理解,也很直接,其實還有以下幾項也是關乎Web
頁面訪問速度體驗的因素,你可以思考下是否如此?或者說是否會影響到頁面訪問性能。
§Web伺服器執行安全策略檢查的時間,或者說性能;
§Web伺服器讀取日誌文件、寫日誌內容、關閉對日誌文件訪問的時間,先讀後寫再關閉,這三步中的讀與寫又涉及到磁碟訪問性能因素;
§同時與Web伺服器連接會話的客戶端數量大小,即並發訪問量多大。
我們可以將上面的影響因素抽像出來,那麼就是:
1、Web伺服器磁碟性能;
2、Web伺服器與應用伺服器交互的性能;
3、應用伺服器處理動態內容的性能,或者說動態內容應用處理性能;
4、客戶端與Web伺服器的連接速度,即網路傳輸性能;
5、Web瀏覽器解釋和渲染Web內容的性能;
6、Web訪問並發性能。
反映到我們進行性能優化,可以入手的角度就有:
1、增加帶寬,包括伺服器和客戶端兩邊的Internet連接帶寬;
2、加快動態內容的處理性能;
3、盡可能多地使用靜態內容,這樣Web伺服器就可以無需請求應用伺服器,直接將Web內容發給瀏覽器端,這里可以入手的方案又有:
動態內容緩存
動態內容靜態化
多台伺服器負載均衡同時處理大量的並發訪問;
提升伺服器磁碟訪問性能,也即通常所說的I/O性能;
減少網頁中的HTTP請求數;
更換更好性能的Web伺服器;
合理部署伺服器,在離客戶端更近的地方部署伺服器,已經證明可以明顯地提升訪問性能。
二、性能優化實踐
經過前面小節的簡要分析,相信你對優化Web伺服器有一定的思路了,你可以從硬體層面、軟體層面、Web代碼三個層面去優化。
下面我們結合一個具體的實例來實踐一回,本文所舉例是一個小型的Web
站點,部分數據系假設,如有類同,純屬巧合,僅起拋磚引玉之用。在實際工作中,如果碰到大站點,你可以參考此處的分析,修改優化方案。
1.站點簡介
一個社區論壇站點,採用Discuz!論壇程序構建,該程序採用主流的PHP+MySQL組成。
網站目前有近5萬注冊用戶,絕大多數是國內的用戶,活躍用戶數在一半左右,每天平均PV在15~20萬,獨立訪問IP數在8000
左右。
2.Web伺服器性能優化需求
網站現部署在國外的伺服器,租用虛擬主機來運營,因為訪問量比較大,所以經常會收到虛擬主機服務商的流量很大的通知,要求控制下訪問量。
另外,虛擬主機的伺服器在美國,沒有在國內租用虛擬主機的原因是國內網站在備案方面非常繁瑣,在網站一開始運營時數據量和訪問量都比較小,所以對性能要求不高,數據量小,所以伺服器在查詢處理數據時速度比較快,也讓人感覺訪問速度不慢,現在隨著數據量和訪問量的不斷上升,訪問速度已明顯下降,到了需要改善訪問性能的時候了。
基於目前該社區網站的情況,提出的優化需求是,國內訪問速度需要提升一倍,目前首頁載入時間需要40秒左右,希望優化後能在20
秒以內將首頁載入完成。
另外提出網站數據能夠每天自動備份一次,備份數據保留一個月的,以便隨時恢復。
上述兩點需求,其中第一條才是性能優化需求,第二條是額外的需求了。
3.性能優化方案
根據其網站的現狀和優化需求,結合自己的經驗,加上谷歌的搜索,同時與網站主不斷確認溝通,最終得到以下性能優化方案:
由虛擬主機部署改為獨立伺服器部署
虛擬主機受限比較多,無法自己自定義配置Web伺服器,無法配置PHP
動態緩存,而且獨立伺服器可以獨享內存、處理器資源,不再受虛擬主機商對每個虛擬主機用戶的內存和處理器資源佔用限制。處理器資源和內存資源,對接受更多並發訪問有直接性能提升效果。
獨立伺服器,我們選用Linode2048型號,2G內存,4核處理器(Linode所有VPS都是四核處理器),80G硬碟空間,800G
網路流量。
由Windows操作系統改為Linux操作系統
網站使用的是PHP+MySQL程序,PHP在Windows下的性能,受限於IIS需要通過ISAPI形式調用PHP,所以性能不如
Linux下Apache直接通過PHP模塊解釋PHP,更不如Nginx與PHP-FPM
的性能,既然使用了獨立伺服器,操作系統也可以自己確定,Linux系統我們選用了熟悉的UbuntuLinuxServer10.04(一年前還沒有
12.04),^-^。
Web伺服器採用Nginx,而不使用Apache
選用Nginx而不用Apache的原因非常直接和乾脆,因為站點里有很多靜態的附件文件,在處理靜態內容上,Nginx性能是Apache
的差不多10倍。
在PHP解釋和偽靜態規則方面,Apache要比Nginx強,但這不影響我們放棄它,為緩解這一點,我們在後面對PHP
進行了動態緩存。
對PHP查詢進行動態緩存,使用eAccelerator這個加速器
PHP加速器是一個為了提高PHP執行效率,從而緩存起PHP的操作碼,這樣PHP後面執行就不用解析轉換了,可以直接調用PHP
操作碼,這樣速度上就提高了不少。
eAccelerator是一個開源PHP加速器,優化和動態內容緩存,提高了PHP腳本的緩存性能,使得PHP
腳本在編譯的狀態下,對伺服器的開銷幾乎完全消除。它還有對腳本起優化作用,以加快其執行效率。使得的PHP程序代碼執效率能提高1-10
倍,這個加速還是非常明顯的。
具體地,我們計劃對eAccelerator進行以下設置優化:
§緩存使用物理內存來進行,不使用磁碟來緩存。我們知道內存的讀寫性能是硬碟的N倍,所以在內存資源可以安排情況下,強烈建議使用內存來保存
eAccelerator的緩存內容。
§緩存大小設置為32MB,這個值是操作系統默認支持最大的緩存容量。雖然可以通過修改配置文件來加大這個值,但我們覺得沒有必要,所以就放棄了。
Nginx性能優化
選用了Nginx,雖然它的性能很好,但我們仍然需要對它進行性能優化,在這個案例中,我們做了以下優化:
§使用8個進程,每個進程大約需要20M內存消耗,這里一共使用了150M左右的內存。
§充分使用主伺服器的CPU內核:四核,使用CPU粘性配置選項(worker_cpu_affinity),每核處理器分配兩個進程。
§開啟gzip壓縮功能:gzip壓縮對JS,CSS,XML壓縮效果非常好,能壓縮一半,即減少一倍的傳輸時間;對圖片文件,JPG
已經壓縮過的,它的壓縮性能要少一些。
§圖片本地緩存1天:網站上的圖片很多,通常一張圖片上傳後,不會頻繁的修改,只會頻繁的訪問,所以將圖片放在Nginx
緩存里,可以減少伺服器訪問載入次數,提升訪問速度。
§JS、CSS文件本地緩存7
天:這兩種網頁文件,平時都不會去修改它,將它緩存起來,可以減少載入次數,提升訪問速度。為什麼這兩種文件不和圖片一起設置緩存有效期,是考慮了不同文件的修改頻率不一樣。
§Nginx日誌每天切割一次:這個優化項能大大減小Nginx日誌文件的大小,經過一周的查看,每天的日誌文件是50M
左右,如果不是每天切割,用月切割,那一個月的日誌文件就是幾個G,要Web
伺服器在內存里載入這么大的文件,系統本身內存不夠用,就自然會用到磁碟來緩存,這就影響性能。每天50M左右,在內存上完全可以順利載入,這樣Nginx
在處理訪問時,可以快速的保存訪問日誌。
經過上述幾個優化項目,Nginx這邊一共需要佔用200M左右內存資源。
對PHPCGI進程性能進行優化
Nginx沒有PHP模塊,所以它對PHP的支持是通過PHP-FPM來實現的,PHP-FPM
是跑進程來處理並發請求,在這個案例中,我們配置了20個進程,每個進程差不多佔用20M左右內存資源,一共是400M左右。
同時,PHP-FPM與Nginx交互機制,選用LinuxSocket模式而不是TCP協議埠,Socks是系統級處理模式,socks
也就是一個文件連接,而TCP協議埠,需要經過網路協議處理,性能不如前者,所以我們選擇了前者。
MySQL資料庫性能優化
因為網站主程序是選用他人開發的開源程序,所以對資料庫查詢的程序優化我們無法處理,只能從MySQL本身尋找突破口。
我們可以想像一下,對於論壇網站,通常看貼、查貼的訪問量要遠大於創建貼子、回復貼子的訪問量,體現在MySQL
資料庫上,就是讀表與查詢表數據的連接處理更多。
因此我們要選擇對讀表、查詢性能更好的存儲引擎,結合以前了解的知識,MySQL預設的MyISAM
引擎就是被設計為適合處理讀頻率遠大於寫頻率的環境,查詢效率相當可觀,而且內存佔用很少,這也與我們租用低內存配置的VPS相符。
具體到MySQL配置參數的優化上,受限於伺服器上內存資源本身有限,就直接採用預設的中型環境配置文件。
內容分發網路應用
站點每天十多萬的訪問,上萬獨立IP
訪問,查看先前的訪問統計,訪問來自國內各個地區,使用多種網路連接訪問進來,為保證來自各網路的用戶訪問速度,同時也減少對網站伺服器的請求,我們採用了CDN
來分發靜態內容,這樣各地的用戶可以就近訪問到已緩存在CDN上的文件,CDN
服務商會在靜態內容第一次訪問時緩存到他們全國各地的伺服器上,當第二次訪問時,用戶實際是沒有連接到網站伺服器上獲取文件的,而是直接從CDN
伺服器上獲取,可以明顯的提升網站性能。
以上就是小編今天為大家分享的關於Web伺服器性能和站點訪問性能該如何優化的文章,希望本篇文章能夠對正在從事web前端工作的小夥伴們有所幫助。想要了解更多web前端相關知識記得關注北大青鳥web培訓官網。最後祝願小夥伴們工作順利!
H. 怎麼在一個web系統中共享大內存進行操作數據
1,有兩台2G內存的機器,一台作web伺服器,跑asp.net;一台作為後端,處理前端web客戶發送過來的數據。前台的數據發送至後端的asp.net
webservice程序,然後後端的web service程序再通過 p/invoke 調用c++ dll,在dll中進行一堆處理之後返回給前台結果。
2.但是現在的問題是,對於連接至後端的每一個用戶,單獨調用c++
dll的數據處理會佔用大量的內存,例如如果有10個用戶,每個用戶佔用100M的話,那麼整個後端會佔用1000M的內存數據量,而每一個dll所產生的100M內存中的內容都是一樣的。
3.因此需要找尋一個解決辦法,可以讓整個的後端系統僅佔用單獨一份100M的內存。c++ dll的源碼可以自行修改編譯,並且對於100M內存,c++
dll只進行讀操作,無需寫(不用加鎖)。
4,互聯網是個神奇的大網,大數據開發和軟體定製也是一種模式,這里提供最詳細的報價,如果真的想做,可以來這里,這個手技的開始數字是一八七中間的是三兒零最後的是一四二五零,按照順序組合起來就可以找到,想說的是,除非想做或者了解這方面的內容,如果只是湊熱鬧的話,就不要來了。
現在想到的方案有:
1.開辟一塊c++的共享內存,所有的c++ dll都會調用這塊共享內存
2.使用 Memcached存儲。將100M放入Memcached中,然後c++ dll調用Memcached的內存內容(但是Memcached
key-value的內容上限為1M?)
3.利用redis進行存儲,同上(沒有key-value的內容上限為1M的限制?)
4.利用asp.net的static和application,將c++代碼全部重寫為c#(但是工作量增大需要重寫代碼>500+行)
I. 從web伺服器上用FTP下載100M的文件,怎麼到了9.5M後就連接失敗了
有可能是網速的問題,伺服器上如果在一定時間內無任何流量的話會被自動斷開的,你再換一個下載軟體試一下。
J. 一個web伺服器能承受多少訪問量
沒有固定,需要看伺服器配置高低。
不僅僅是訪問量問題,主要是數據,如果站點數據量不是太大。沒有太多的查詢。一台P4的普通電腦可以承受成千上萬的上網用戶。(還有帶寬問題,比如共享的100兆位。高帶寬。在線人數更多)
如果您有一個幾百兆位元組或幾十億位元組的資料庫。這是另一回事。伺服器的內存必須至少是資料庫的3倍才能運行。
無論如何。常見的企業網站。幾百米的股票。P4的平台。網上幾千個就足夠了(沒有下載,沒有視頻)。
(10)web頁面一次請求100m數據擴展閱讀:
WEB伺服器類型:
1,IIS
IIS伺服器稱為:Internet信息服務。它是微軟公司擁有的web伺服器,是目前最流行的web伺服器產品之一。
2、康樂
Kanglewebserver(Kangle)是一款跨平台、功能強大、安全穩定、易於操作的高性能web伺服器和反向代理伺服器軟體。
3,WebSphere
WebSphereApplicationServer是一個功能齊全的開放Web應用程序伺服器,它是IBM電子商務計劃的核心部分。它是一個基於java的應用程序環境,用於構建、部署和管理Internet和IntranetWeb應用程序。
4,WebLogic
BEAWebLogicServer是一個多功能的、基於標準的web應用程序伺服器,為企業構建自己的應用程序提供了堅實的基礎。
5,Apache
Apache是世界上使用最多的Web伺服器,佔有大約60%的市場份額。
6,Tomcat
Tomcat是一個開源的基於java的Web應用程序容器,它運行servlet和JSPWeb應用程序。
7,Jboss
它是一個基於J2EE的開源應用伺服器。JBoss代碼是在LGPL下授權的,可以在任何商業應用程序中免費使用,而不需要支付任何費用。