真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

sqlserver應(yīng)用池,sql連接池

服務(wù)器應(yīng)用程序池老是自動停止

一、2003應(yīng)用程序池自動死了,不能恢復(fù)了,一直出現(xiàn) Service Unavailable 常見方法如下。

創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站制作、做網(wǎng)站與策劃設(shè)計(jì),建鄴網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:建鄴等地區(qū)。建鄴做網(wǎng)站價格咨詢:18980820575

1:沒有打SP1補(bǔ)丁的時候會出現(xiàn)這個IIS6.0假死問題,但現(xiàn)在微軟都在自動更新里面出補(bǔ)丁了,一般你打好最新補(bǔ)丁后是不會出現(xiàn)此問題了。(所以現(xiàn)在的IIS假死與這個關(guān)系不是很大)

2:從IIS6.0開始CPU資源都在應(yīng)用池里面限制了,不象以前的IIS.5。所以假死的池的緣故就是池被拉死,你在網(wǎng)站打不開的時候可以看到你的某個應(yīng)用池是禁用的,上面出現(xiàn)一個紅叉。你鼠標(biāo)右鍵啟動網(wǎng)站又會自動恢復(fù)。 這個原因:大概是以下幾個因數(shù)造成的。

(1):你限制了應(yīng)用池的資源,限制得太小 比如:50這樣或更少更多一點(diǎn),這個時候如果你這個池下面的網(wǎng)站占用CPU太高,比如超過50% 那么5分鐘后他就自動死了,手工默認(rèn)建立的應(yīng)用池默認(rèn)是超過資源不操作。

出現(xiàn)上面這個情況解決方法:1:不限制CPU資源,(這個是不可取的,不限制資源,有的程序有BUG占用資源厲害了的,服務(wù)器都會被拉死,你可能都無法操作服務(wù)器。)2:在超過資源那里選擇關(guān)閉,這個關(guān)閉默認(rèn)是失敗5次,90秒內(nèi)恢復(fù),一般默認(rèn)就可。網(wǎng)站能自動恢復(fù),這個關(guān)閉:不是永久關(guān)閉,意思是超過資源關(guān)閉,然后在某時間內(nèi)自動恢復(fù)池。不操作就是不恢復(fù),這個是很多人的誤區(qū)。

(2):內(nèi)存限制 在IIS6.0應(yīng)用池上面有虛擬內(nèi)存和最大內(nèi)存限制,如果你設(shè)置了這個。那么網(wǎng)站訪問量大了 也會出現(xiàn)假死,所以不建議設(shè)置這里。默認(rèn)就可。

3:就是服務(wù)器自身內(nèi)存太小,網(wǎng)站運(yùn)行當(dāng)然需要使用到內(nèi)存了,當(dāng)內(nèi)存不夠的時候應(yīng)用池也會死掉變成禁用。那么只有等內(nèi)存全部釋放出來才能恢復(fù)應(yīng)用池了。出現(xiàn)這個情況:那么你就要考慮加內(nèi)存或者檢查到底是什么程序占用了內(nèi)存了。比如MSSQL數(shù)據(jù)庫,這個可是吃內(nèi)存得大戶啊,最好別和WEB服務(wù)器同時一個服務(wù)器上。很多人用1G內(nèi)存做 2003系統(tǒng),2003NET結(jié)構(gòu)是很占用內(nèi)存的,所以做服務(wù)器選2003還得把內(nèi)存加到2G或更高才好。 內(nèi)存不夠上面 2點(diǎn)講到的,是沒辦法操作了,也無法自動恢復(fù)。

4:就是ACCESS數(shù)據(jù)庫太大或查詢太多,這個也會出現(xiàn)把IIS拉死,解決方法;修復(fù)ACCESS數(shù)據(jù)庫,或盡量少用ACCESS數(shù)據(jù)庫,升級至sqlserver數(shù)據(jù)庫;或者在技術(shù)方面革新,像現(xiàn)在有些網(wǎng)站系統(tǒng),風(fēng)訊、動易等cms;pjblog、zblog等博客程序,都支持生成靜態(tài)功能.

5:不同網(wǎng)站用不同應(yīng)用池:根據(jù)你自己實(shí)際情況而定,站點(diǎn)大的最好獨(dú)立一個應(yīng)用池,限制他的資源超過了自動回收,看上面(1)講到的,這樣就不影響其他站點(diǎn)。中型站點(diǎn):多個網(wǎng)站共用一個應(yīng)用池,比如5個站點(diǎn)用一個池,設(shè)置他資源時間等等。這樣他們就算超資源了也不影響其他應(yīng)用池的網(wǎng)站。

6:設(shè)置回收時間:很多人以為設(shè)置回收池越短越好,其實(shí)是錯誤的,每次回收當(dāng)然是把內(nèi)存回收回來了,但加重了一次服務(wù)器的負(fù)擔(dān),當(dāng)服務(wù)器比較繁忙的時候,有可能導(dǎo)致其他應(yīng)用池死。所以建議設(shè)置共1000就行了。其他獨(dú)立池按照他網(wǎng)站流量而設(shè)置 可以設(shè)置600 也行,共用的不建議設(shè)置太短。

7:網(wǎng)站后臺過不了多久自動退出又要重新登陸:這個情況就是你設(shè)置回收時間太短了,按照 6點(diǎn)設(shè)置吧。 不要設(shè)置什么20分、30分這樣的,這樣不好的。另外一個原因就是和站的響應(yīng)設(shè)置時間有關(guān),設(shè)置得稍長些。

8:windows 2003系統(tǒng)iis6訪問本機(jī)的站點(diǎn)時提示“Service Unavailable”;

查看iis的應(yīng)用程序池,狀況提示為:未指定錯誤,同時應(yīng)用程序池自動停止運(yùn)行;

java連接SqlServer2008的數(shù)據(jù)庫連接池怎么使用

java連接SqlServer2008的數(shù)據(jù)庫連接池使用:

import java.sql.Connection;

import java.sql.SQLException;

import java.util.Vector;

/**數(shù)據(jù)庫連接池的公共類 **/

public class ConnectionPool {

private VectorConnection pool;//聲明集合,里面只能是放Connection

/**

* 聲明要的東西

*/

private String url = "jdbc:sqlserver://localhost:1433; database=ajax";

private String username = "sa";

private String password = "sa123";

private String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

/**

* 連接池的大小,也就是連接池中有多少個數(shù)據(jù)庫連接

*/

private int poolSize = 5;

private static ConnectionPool instance = null;

/**

* 私有的構(gòu)造方法,禁止外部創(chuàng)建本類的對象,要想獲得本類的對象,通過codegetIstance/code方法

* 使用了設(shè)計(jì)模式中的單子模式

*/

private ConnectionPool() {

init();

}

/**

* 連接池初始化方法,讀取屬性文件的內(nèi)容 建立連接池中的初始連

*/

private void init() {

pool = new VectorConnection(poolSize);

//readConfig();

addConnection();

}

/**

* 返回連接到連接池

*/

public synchronized void release(Connection conn) {

pool.add(conn);

}

/**

* 關(guān)閉連接池中的所有數(shù)據(jù)庫連接

*/

public synchronized void closePool() {

for (int i = 0; i pool.size(); i++) {

try {

((Connection) pool.get(i)).close();

} catch (SQLException e) {

e.printStackTrace();

}

pool.remove(i);

}

}

/**

* 返回當(dāng)前連接池的對象

*/

public static ConnectionPool getInstance() {

if (instance == null) {

instance = new ConnectionPool();

}

return instance;

}

/**

* 返回連接池中的一個數(shù)據(jù)庫連接

*/

public synchronized Connection getConnection() {

if (pool.size() 0) {

Connection conn = pool.get(0);

pool.remove(conn);

return conn;

} else {

return null;

}

}

/**

* 在連接池中創(chuàng)建初始設(shè)置的的數(shù)據(jù)庫連接

*/

private void addConnection() {

Connection conn = null;

for (int i = 0; i poolSize; i++) {

try {

Class.forName(driverClassName);

conn = java.sql.DriverManager.getConnection(url, username,

password);

pool.add(conn);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

如何解決SQLServer占內(nèi)存過多的問題

當(dāng)系統(tǒng)本身有內(nèi)存可以用的的時候,SQL Server 根據(jù)操作系統(tǒng)報(bào)告的物理內(nèi)存加載動態(tài)增大和收縮其緩沖池(緩存)的大小。只要有足夠的內(nèi)存可用于防止內(nèi)存頁面交換(在 4 至 10 MB 之間),SQL Server 緩沖池就會繼續(xù)增大。如果你想把sql的內(nèi)存控制在某個數(shù)量,可以更改配置信息,

1.打開企業(yè)管理器,展開服務(wù)器組。

2.單擊該服務(wù)器,點(diǎn)擊鼠標(biāo)右鍵,單擊屬性菜單。

3.在彈出的對話框中單擊內(nèi)存選項(xiàng)卡。

可以看到SQLServer將動態(tài)配置內(nèi)存的最大值修改為物理內(nèi)存的最大值了

解決 SQL Server 耗盡內(nèi)存的情況

如果碰到SQL Server服務(wù)造成內(nèi)存不斷擴(kuò)展最終系統(tǒng)死機(jī)等情況,請按照以下方法解決。

原理:SQL Server 2000引入的動態(tài)內(nèi)存分配機(jī)制,一般不能很好的回收內(nèi)存,如果計(jì)算機(jī)一直不關(guān)閉,就會發(fā)生內(nèi)存耗盡的可能??梢赃x擇每周關(guān)機(jī)一次來避免,或者是按照下述方法來抑制內(nèi)存的增長。

1、在服務(wù)器上開始—Microsoft SQL Server—企業(yè)管理器 中啟動SQL企業(yè)管理器

2、啟動以后打開右邊的控制臺樹:控制臺根目錄\Microsoft SQL server\Sql Server組\(Local) 。

3、在(Local)節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,選擇"屬性"菜單,可以看到一個 SQl Server屬性(配置) 窗體

4、選擇"內(nèi)存"舌標(biāo),打開內(nèi)存配置頁面。將內(nèi)存的最大值限定在一定的范圍內(nèi),一般按照以下比例:

a) 如果僅僅用于數(shù)據(jù)庫服務(wù)器,為總內(nèi)存的80-90%

b) 如果兼任域服務(wù)器,一般為60-70%

c) 如果還兼任WEB服務(wù)器,建議最大為60%

5、設(shè)定完畢點(diǎn)擊確定,然后重新啟動SQl Server服務(wù)使之生效即可。

解決服務(wù)器的w3wp.exe進(jìn)程占用cpu和內(nèi)存過多的問題

解決CPU占用過多:

1、在IIS中對每個網(wǎng)站進(jìn)行單獨(dú)的應(yīng)用程序池配置。即互相之間不影響。

2、設(shè)置應(yīng)用程序池的CPU監(jiān)視,不超過30%(一個程序池20個站),每分鐘刷新,超過限制時關(guān)閉。

根據(jù)w3wp取得是哪一個應(yīng)用程序池:

1、在任務(wù)管理器中增加顯示pid字段。就可以看到占用內(nèi)存或者cpu最高的進(jìn)程pid

2、在命令提示符下運(yùn)行iisapp -a。注意,第一次運(yùn)行,會提示沒有js支持,點(diǎn)擊確定。然后再次運(yùn)行就可以了。這樣就可以看到pid對應(yīng)的應(yīng)用程序池。(iisapp實(shí)際上是存放在C:\windows\system32目錄下的一個VBS腳本,全名為iisapp.vbs,如果你和我一樣,也禁止了Vbs默認(rèn)關(guān)聯(lián)程序,那么就需要手動到該目錄,先擇打開方式,然后選“Microsoft (r) Windows Based Script. Host”來執(zhí)行,就可以得到PID與應(yīng)用程序池的對應(yīng)關(guān)系。)

3、到iis中察看該應(yīng)用程序池對應(yīng)的網(wǎng)站,就ok了,做出上面的內(nèi)存或CPU方面的限制,或檢查程序有無死循環(huán)之類的問題。

解決內(nèi)存占用過多,可以做以下配置:

1、在IIS中對每個網(wǎng)站進(jìn)行單獨(dú)的應(yīng)用程序池配置。即互相之間不影響。

2、設(shè)置應(yīng)用程序池的回收時間,去掉默認(rèn)為1720,設(shè)置固定時間回收(在下列時間回收工作進(jìn)程:00:01 06:01 12:01)。再設(shè)置當(dāng)內(nèi)存占用超過多少(如192M 10個站一個程序池時),就自動回收內(nèi)存。

3、在性能中設(shè)置啟用CPU監(jiān)視

最大使用率 30%

刷新率 1分鐘

操作:關(guān)閉

1、 要限制一個站點(diǎn)的CPU使用,必須將該站點(diǎn)設(shè)置為獨(dú)立應(yīng)用程序池,共用應(yīng)用程序池是無法限制單個站點(diǎn)的。IIS獨(dú)立應(yīng)用程序池,就需要獨(dú)立的進(jìn)程,非常消耗內(nèi)存。獨(dú)立池越多,就有越多的W3WP進(jìn)程。對于每個站點(diǎn)均要獨(dú)立應(yīng)用程序池的服務(wù)器,在一般的普通P43.0 2G內(nèi)存 的普通服務(wù)器上,建議不要超過50個站點(diǎn),最好30以內(nèi),不然服務(wù)器壓力非常大。在配置上,我一般把資源消耗較大的網(wǎng)站獨(dú)立一個池,一般普通BBS或者生成HTML的系統(tǒng)大概5個站一個池。普通網(wǎng)站以及一些企業(yè)站點(diǎn)均共用一個池。

2、根據(jù)wlmmc的經(jīng)驗(yàn),在服務(wù)器硬件允許的情況下,一般不要限制站點(diǎn)內(nèi)存使用,這樣能夠保證網(wǎng)站運(yùn)行,不會出現(xiàn)用戶掉線情況。需要限制某站的最大虛擬內(nèi)存不要小于64M,不然可能出現(xiàn)一些未知的錯誤。

3、這些都不是根本解決辦法,它的根本問題是網(wǎng)站程序有問題,要解決根本問題還要從程序查起。根據(jù)本文開頭提到的方法查到具體的應(yīng)用程序池,找到使用此應(yīng)用程序池的網(wǎng)站,解決網(wǎng)站程序存在的問題,如死循環(huán)之類。

4、除了w3wp.exe, 在調(diào)用數(shù)據(jù)庫進(jìn)行大量查詢操作的時候,也會大量占用CPU資源,這是難免的(數(shù)據(jù)庫方面的語句及結(jié)構(gòu)優(yōu)化不在本文討論范圍之內(nèi))。個人認(rèn)為,只要不是CPU長時間占用100%, 一般在75%左右都是正常的。

sqlserver可以用druid連接池嗎

DBCP(DataBase connection pool)數(shù)據(jù)庫連接池。是Apache上的一個 java連接池項(xiàng)目,也是 tomcat使用的連接池組件。單獨(dú)使用dbcp需要3個包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立數(shù)據(jù)庫連接是一個非常耗時耗資源的行為,所以通過連接池預(yù)先同數(shù)據(jù)庫建立一些連接,放在內(nèi)存中,應(yīng)用程序需要建立數(shù)據(jù)庫連接時直接到連接池中申請一個就行,用完后再放回去。dbcp沒有自動的去回收空閑連接的功能。

SQLServer連接池被創(chuàng)建在SQLClient端還是SQLServer端?

SQL Server的連接池可大大減少數(shù)據(jù)庫在連接上的開銷,從而提高數(shù)據(jù)庫的性能。感興趣的朋友可以看一下這篇文章。

SQL Server的連接池是重要的可升級特性,它對于n層風(fēng)格的WEB應(yīng)用程序特別重要,這種應(yīng)用程序可能需要快速支持?jǐn)?shù)有時候 同步連接。SQL Server的每個開放連接都需要系統(tǒng)開銷和管理。最初建立的連接是各種相關(guān)連接中開銷最大的活動。連接池通過多個引入用戶之間共享一組連接使得整體連接過程更加有效。如果使用連接池,您不需要立即為每個用戶打開各自的連接,共享相同連接特性的所有連接共享相同的連接,并減少了SQL Server必須建立和維護(hù)的新連接的總數(shù)。為了進(jìn)一步提高效率,當(dāng)某個特定客戶機(jī)從服務(wù)器上數(shù)據(jù)開時并不立即關(guān)閉開放連接,而是將該連接保持開放一小段時間(由SqlConnection對象的ConnectionString我所使用的ConnectionLifeTime關(guān)鍵字確定)。這樣使得該連接能夠立即被任何共享相同連接特性的新客戶機(jī)使用,因此避免了建立新連接所需的開銷。

在.NET Frameword Data Provider for SQL Server可以自動實(shí)現(xiàn)連接池,而不需要任何特殊的設(shè)置。在打開一個連接時,則基于SqlConnection對象的ConnectionString特性中使用的值創(chuàng)建一個連接池。每個連接池都與一個唯一的連接字符串相關(guān)。在打開一個新連接時,SqlConnection對象檢查ConnectionString特性中的值是否與現(xiàn)有連接池中使用的連接字符串匹配。如果匹配,則將新連接添加到現(xiàn)有的連接池中。否則創(chuàng)建一個新連接池。只有在應(yīng)用程序結(jié)束后SqlConnection對象才會銷毀連接池。


網(wǎng)站標(biāo)題:sqlserver應(yīng)用池,sql連接池
網(wǎng)站鏈接:http://weahome.cn/article/dsdhsjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部