BSD上Apache性能的調整(3)_Windows教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!
      CHILD_MAX和OPEN_MAX設置成允許512個子進程(與每用戶最大進程數不同)和文件描述符。這個值可以根據你的特殊配置進行修改(如果你的模塊或CGI要打開許多文件時,就設置一個較大的OPEN_MAX)。如果在同一機器上除httpd外還有其他許多工作,就需要設置較大的NPROC。該例中NPROC的值來源于maxusers。

        增大listen() queue的大小,需要調整SOMAXCONN的值。SOMAXCONN不是來自于maxusers的。所以需要自己增大這個值。目前,這個值在sys/socket.h中設置。調整這個參數最好的方式時run-time(運行時更改),這要比在頭文件中修改要好。要在運行時更改,編輯/etc/rc.local,增加:

      /usr/sbin/sysctl -w kern.somaxconn=256

        這里使用256,可以進行更改以適合你的需要。許多情況下,設置成128就可以了。

        如果配置的kernel使用的資源超過了你可使用的系統RAM的數量,系統可能不能啟動。保證任何時候有一個可以啟動系統的kernel。使用一些系統工具了解一下你是否需要增加一些內存。

        當OPEN_MAX大于256時,RPC服務會失敗。這是由于原始的RPC庫的一個函數使用1 byte保存文件描述符導致的。BSDI release 2.1解決了部分問題,但最終的解決需要等待重新設計RPC。

        最后還有一個在Apache中對子進程配置的硬限制。對Apache 1.0.5以后的版本,需要改變httpd.h中HARD_SERVER_LIMIT的定義并重新編譯才能運行超過150個httpd進程。 在conf/httpd.conf-dist中:

      # Limit on total number of servers running, i.e., limit on the number
      # of clients who can simultaneously connect --- if this limit is ever
      # reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
      # It is intended mainly as a brake to keep a runaway server from taking
      # Unix with it as it spirals down...


        MaxClients 150

        在增大這個值之前,要檢查一下你的系統,RAM 擴展,并調整kernel。

        M. Teterin" 寫到:

        對kernel和經常使用的應用程序進行優化非常有用。在AMD-133(486類CPU)上重新編譯FreeBSD kernel時加上-m486 -fexpensive-optimizations -fomit-frame-pointer -O2 可以減少 "unable" errors。

      來源:網絡搜集//所屬分類:Windows教程/更新時間:2013-04-15
      相關Windows教程