針對Web伺服器總體優化

2021-04-12 14:36:53 字數 2799 閱讀 7773

一、檔案系統

在fstab裡加入noatime,如

#cat /etc/fstab

/dev/sda1          /home                  ext3    noatime,defaults        1 2

reboot或者重新mount生效

二、tcp優化

在/etc/sysctl.conf裡加入

net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 3

net.ipv4.tcp_syncookies = 1 #啟用syncookies

net.ipv4.tcp_max_syn_backlog = 8192 #定義backlog佇列容納的最大半連線數

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1800

net.ipv4.tcp_window_scaling = 0

net.ipv4.tcp_sack = 0

net.ipv4.tcp_timestamps = 0

[color=blue]老實說,對於sysctl.conf究竟能不能用起來還真不知道,因為我是沒用起來,雖然核心裡面是支援的 = =b[/color]

三、虛擬記憶體優化

/etc/sysctl.conf

vm.lower_zone_protection = 100

四、i/o排程器

在grub.conf的相應啟動選項裡加入elevator=deadline,如:

kernel /vmlinuz-2.6.6 ro root=/dev/sda6 elevator=deadline

這裡用了deadline的i/o排程器,它比系統預設的anticipatoryi/o排程器更為小巧,在資料吞吐量非常大的資料庫系統中表現得更有優勢。

五、核心源**引數修改

修改/usr/src/linux/include/linux/posix_types.h

#define __fd_setsize 1024 ?nbsp;65536 

設定fd_set支援的最大數量

修改/usr/src/linux/include/linux/fs.h

#define inr_open 1024 ?nbsp;65536

#define nr_file 8192 ?nbsp;65536

#define nr_reserved_files 10 ?nbsp;128

設定最大開啟檔案數量(tcp連線數量)

修改/usr/src/linux/include/net/tcp.h

#define tcp_timewait_len (60*hz) ?nbsp;1*hz

#define tcp_synack_retries  5 ?nbsp;3 

設定在backlog佇列裡的半連線的重試次數,每次都會花相應的時間,本質上

也是減少重試時間

make menuconfig中,去掉沒用的選項,開啟以下選項的開關:

high memory support (支援4gb以上記憶體)

symmetric multi-processing support (支援多cpu)

tcp syncookie support (可以防dos)

設定檔案開啟數等的其他方法(好處就是可以不重新編譯核心)

在 /etc/init.d/sshd裡加入(統一加在. /etc/rc.d/init.d/functions行後面)

ulimit -n 65535 >;/dev/null 2>;&1

ulimit -u 16384 >;/dev/null 2>;&1

重起 sshd:nohup /etc/init.d/sshd restart &

btw:其實limits.conf不好,因為他需要root su - user遺傳給普通使用者

如果直接遠端登陸是沒效果的

六、apache

1、安裝:採用worker執行緒工作模式

./configure --prefix=/prefix 

--enable-mods-shared=all 

--enable-deflate 

--with-mpm=worker

[color=blue]chmod +s /prefix/bin/httpd [/color]#允許普通使用者也可以啟動

apache

2、配置:httpd.conf

timeout 60

keepalive on

maxkeepaliverequests 150

keepalivetimeout   5

startservers         3

maxclients         3200   #支援

3200個客戶端哦

serverlimit        32

minsparethreads     50

maxsparethreads     250

threadlimit   200

threadsperchild     100

maxrequestsperchild 0

#上面的幾個引數對機器要求比較高,如果是比較差的機器,每台機

1000個連線最多了,你可能要重新設定引數,我的機器是dell 2850

usecanonicalname off

hostnamelookups off

serversignature off

針對Web伺服器總體優化

一 檔案系統 在fstab裡加入noatime,如 cat etc fstab dev sda1 home ext3 noatime,defaults 1 2 reboot或者重新mount生效 二 tcp優化 在 etc sysctl.conf裡加入 net.ipv4.netfilter.ip c...

針對Web伺服器總體優化

一 檔案系統 在fstab裡加入noatime,如 cat etc fstab dev sda1 home ext3 noatime,defaults 1 2 reboot或者重新mount生效 二 tcp優化 在 etc sysctl.conf裡加入 net.ipv4.netfilter.ip c...

優化Web伺服器

優化web伺服器,實現如下效果 自定義 404錯誤頁面 公升級nginx至1.15.8版本,開啟status模組 編寫日誌切割指令碼,實現每週五備份日誌2.2 步驟 實現此案例需要按照如下步驟進行。步驟一 自定義404錯誤頁面 1 優化前測試 客戶端訪問乙個不存在的頁面 root room9pc01...