WMS平常運維_WJC

3.2五、奧克斯項目Apache的server reached MaxClients setting問題

apachelog報錯:[mpm_worker:error] [pid 2486:tid 140526322251584] AH00287: server is within MinSpareThreads of MaxRequestWorkers, consider raising the MaxRequestWorkers settinghtml

解答:檢查了一下,這是因爲併發連接數太多致使的!web

解決:apache

 ps -ef | grep httpd | grep -v grep | wc -l    --查看進程量瀏覽器

netstat -ant | grep -E ":80|:443" | wc -l    ----查看鏈接數tomcat

netstat -ant | grep ESTABLISHED | grep -E ":80|:443"   ---查看創建鏈接數服務器

# vi /usr/local/apache2/conf/extra/httpd-mpm.confsession

<IfModule mpm_worker_module>多線程

    StartServers             3併發

    MinSpareThreads         75ide

    MaxSpareThreads        250

    ThreadsPerChild         25

    ServerLimit            2000

    MaxRequestWorkers      1000

    MaxConnectionsPerChild   0

</IfModule>

3.2六、奧克斯項目 限制單個IP進行鏈接的線程,不容許多線程鏈接資源

對於IP限制,採用了 mod_limitipconn 這個模塊。

這個模塊的優勢是配置簡單,缺點是不可以針對單獨的文件夾或者文件進行設置,並且不支持虛擬主機。 

在 apache 中安裝了這個模塊後,在配置文件中添加以下幾段就能夠生效了: 

ExtendedStatus On 

< IfModule mod_limitipconn.c > 

    < Location / >          # 全部虛擬主機的/目錄 

        MaxConnPerIP 3      # 每IP只容許3個併發鏈接 

        NoIPLimit image/*      # 對圖片不作IP限制 

    < /Location > 

    < Location /mp3 >            # 全部主機的/mp3目錄 

        MaxConnPerIP 1              # 每IP只容許一個鏈接請求    

        OnlyIPLimit audio/mpeg video    # 該限制只對視頻和音頻格式的文件 

    < /Location > 

< /IfModule >

3.2七、奧克斯項目No space left on device: Cannot create SSLMutex

錯誤提示「No space left on device: Cannot create SSLMutex」,這一句的含義是沒有剩餘資源建立 SSLMutex 共享變量

聯想到了Linux沒法建立句柄,並會沒法提供服務,因而查看共享變量資源的佔用狀況

ipcs : ipcs provides information on the ipc facilities for which the calling process has read access.

# ipcs -s 

------ Semaphore Arrays --------

key        semid      owner      perms      nsems    

0x00000000 0          root       600        1        

0x00000000 32769      root       600        1        

0x00000000 163842     apache     600        1        

0x00000000 196611     apache     600        1        

0x00000000 229380     apache     600        1        

0x00000000 262149     apache     600        1        

0x00000000 294918     apache     600        1 

發現共享變量有數百個被apache進程佔用,沒法釋放,資源耗盡了。

因而,須要刪除佔盡的共享變量信號資源,刪除命令以下:

# ipcs -s | perl -ane '/^0x00000000/ && `ipcrm -s $F[1]`'

查看 ipcs 的限制參數:ipcs -l

# ipcs -l

------ Shared Memory Limits --------

max number of segments = 4096

max seg size (kbytes) = 67108864

max total shared memory (kbytes) = 17179869184

min seg size (bytes) = 1

 

------ Semaphore Limits --------

max number of arrays = 128

max semaphores per array = 250

max semaphores system wide = 32000

max ops per semop call = 32

semaphore max value = 32767

 

------ Messages: Limits --------

max queues system wide = 3751

max size of message (bytes) = 65536

default max size of queue (bytes) = 65536

顯示發現,Semaphore Limits 最大爲128,超過了這個數量,httpd 服務將會沒法再啓動,也就致使了上面的網站打不開。

3.2八、奧克斯項目tomcat內存泄漏存入dump文件

不少tomcat進程退出(或者進程假死),都是因爲頻繁的拋出OutOfMemeoryError致使的。

  爲了讓tomcat退出前或者發生OutOfMemeoryError時自動dump堆棧信息,方便過後排查問題,咱們能夠作以下操做:

  一、 在tomcat啓動參數中加入兩個參數 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export /oom.hprof

  二、 重啓tomcat

  參數說明

  (1)-XX:+HeapDumpOnOutOfMemoryError 表示當JVM發生OOM時,自動生成DUMP文件。

  (2)-XX:HeapDumpPath=存儲文件/目錄 表示生成DUMP文件的路徑

3.2九、奧克斯項目tomcat的Session超時的三種配置

設置Session超時時間方式:

方式一:
 在web.xml中設置session-config以下:
 <session-config>
  <session-timeout>2</session-timeout>
 </session-config>
 
 即客戶端連續兩次與服務器交互間隔時間最長爲2分鐘,2分鐘後session.getAttribute()獲取的值爲空

方式二:
 在Tomcat的/conf/web.xml中session-config,默認值爲:30分鐘
 <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
 
方式三:
 在Servlet中設置
  HttpSession session = request.getSession();
  session.setMaxInactiveInterval(60);//單位爲秒

說明:
 1.優先級:Servlet中API設置 > 程序/web.xml設置 > Tomcat/conf/web.xml設置
 2.若訪問服務器session超時(本次訪問與上次訪問時間間隔大於session最大的不活動的間隔時間)了,即上次會話結束,但服務器與客戶端會產生一個新的會話,以前的session裏的屬性值所有丟失,產生新的sesssionId
 3.客戶端與服務器一次有效會話(session沒有超時),每次訪問sessionId相同,若代碼中設置了session.setMaxInactiveInterval()值,那麼這個session的最大不活動間隔時間將被修改,並被應用爲新值。
 4.Session的銷燬(表明會話週期的結束):在某個請求週期內調用了Session.invalidate()方法,此請求週期結束後,session被銷燬;或者是session超時後自動銷燬;或者客戶端關掉瀏覽器

3.3八、長安項目apache報錯ap_proxy_connect_backend disabling worker  for (127.0.0.1)

解決辦法是在apache http服務器虛擬主機配置中向代理程序指令添加「重試=0」參數,這樣它就不會等待默認的60秒才能重試。

ProxyPass / http://backendserver:8080/ retry=0

相關文章
相關標籤/搜索