2012年12月9日 星期日

無法安裝vim

修正方式如下:
sudo apt-get purge vim-common
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim

2012年11月26日 星期一

各廠牌 筆電 還原鍵 , 開機選單 一覽表


廠牌 BIOS 開機選單 還原鍵
ASUS F2 ESC F9
ACER F2 F12 ALT+F10
BENQ F10
IBM 冷開機按F1 F6 F11
SONY F2 F10
TOSHIBA 冷開機時按ESC後按F1 按電源鍵後出現進入BIOS選項時,按 0 開始硬碟還原
HP F2 F9 F3,F11
聯強 F10
技嘉 F9
建達 ALT+F12
倫飛 F4
DELL F2
FUJITSU F2

2012年9月26日 星期三

LINUX 格式化方式 + Mount 連結磁碟機

格式化

使用系統管理員帳戶 身份打「mkfs -t ext2|ext3|ext4 儲存裝置」:
範例: mkfs -t ext3 /dev/sdb5

設定開機連結磁碟

第一步: 先搜尋硬碟的UUID碼
指令: ls -l /dev/disk/by-uuid

第二步: 開機自動掛載的磁區通常紀錄在 /etc/fstab 檔案。
要設定開機掛載就需要修改 /etc/fstab 檔案。
直接開啟 /etc/fstab 的內容:

UUID=磁區UUID / ext4 errors=remount-ro 0 1

# /home was on /dev/sda3 during installation
UUID=家目錄磁區UUID /home ext4 defaults 0 2

# swap was on /dev/sda2 during installation
UUID=置換空間磁區的UUID none swap sw 0 0

# 光碟機的MOUNT設定
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0

# 上面是一般 /etc/fstab 基本內容
# 也可以新增掛載 Windows 系的 NTFS 檔案系統

# 使用者自行設定的掛載
UUID=磁碟磁區的UUID 自行設置的掛載目錄路徑 ntfs defaults 0 0


編輯完的 /etc/fstab 存檔後重新開機。
如果順利開機成功,便是設置完成了。



2012年9月21日 星期五

如何掛載LVM(How to mount a LVM system)


張貼者: 笨魚 於 上午7:50
在拿到RHCE的那個年代,LVM是一項在Linux上可看不要玩的功能。畢竟他的功能與穩定性還是無法媲美unix的。但現在的LVM在某大廠的支持下,已經發展得很好。所以在預設安裝之時Patiton就已經預設用LVM來安裝。但總無可避免得會遇到換機器、或者移動硬碟之事。那如何在新的系統上mount這LVM就必須瞭解的。

系統環境:CentOS 5.5


1.找出partition的VG,我都下fdisk -l
[root@localhost /]# fdisk -l
Disk /dev/hdb: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 * 1 13 104391 83 Linux
/dev/hdb2 14 4865 38973690 8e Linux LVM

Disk /dev/sda: 160.0 GB, 160040803840 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 19457 156183930 8e Linux LVM

可以看出/dev/sda2跟/dev/hdb2都使用LVM(我的系統裝在IDE硬碟,所以要掛載/dev/sda2),但可不是下mount /dev/sda2 /data就可以了事的。到這邊還是建議對LVM不熟得人看一下LVM的架構,何謂pv、vg、lv好了。

2.下pvscan可以得知有二個PV,各有一個VG。叫做VolGroup00跟VolGroup01
[root@localhost /]# pvscan
PV /dev/hdb2 VG VolGroup01 lvm2 [37.16 GB / 0 free]
PV /dev/sda2 VG VolGroup00 lvm2 [148.94 GB / 0 free]
Total: 2 [186.09 GB] / in use: 2 [186.09 GB] / in no VG: 0 [0 ]

3.下vgchange -ay VolGroup00 可以知道VolGroup00的狀態
[root@localhost /]# vgchange -ay VolGroup00
2 logical volume(s) in volume group "VolGroup00" now active

4.ls /dev/VolGroup00,可以看到有二個LV分別是LogVol00 與 LogVol01。
[root@localhost /]# ls /dev/VolGroup00
LogVol00 LogVol01

5.然後再mount要的lv就到mount point就好了。
mount /dev/VolGroup00/LogVol00 /mnt/data

資料來源: http://addichen.blogspot.tw/2011/02/lvm.html

2012年9月15日 星期六

Google Calendar Sync 讓Google日曆與Outlook行事曆同步更新!


如果你平常用慣了Gmail跟Google的網路日曆功能,可在辦公室還是需要使用Outlook來收發郵件、安排行程的話,有沒有什麼方法可以讓Google日曆與Outlook行事曆可以很方便的同步化更新呢?
之前有滿多套軟體也可以做到這功能,有些不是設定複雜不然就是要另外花錢,現在換Google自己推出Google日曆的同步軟體囉!安裝好之後只要設定一次,以後就可以輕鬆讓兩邊的行事曆的內容通通都保持一致唷!(另外也可以透過Outlook的幫忙,讓你的Google日曆與手機或PDA行事曆同步更新)
以下簡單介紹Google Calendar Sync這個同步化軟體,安裝好再設定一下帳號密碼就可以馬上使用。目前Google Calendar Sync只能同步一個行事曆,如果你的Google日曆或Outlook裡面有設多個行事曆的話,目前僅能處理主要行事曆的同步。(這對一般使用者應該都夠用了)
Google Calendar-01
軟體名稱:Google Calendar Sync 
軟體版本:0.9.3.6 
軟體語言:英文版 
軟體性質:免費軟體 
檔案大小:663KB 
系統支援:Windows 98/2000/XP/2003/Vista 
官方網站:http://www.google.com/ 
軟體下載:按這裡

更改Windows遠端遙控PORT

啟動 [登錄編輯程式]。
找出並按一下下列登錄子機碼:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber
在 [編輯] 功能表上,按一下 [修改],再按一下 [十進位]。
輸入新的連接埠號碼,然後按一下 [確定]。
結束 [登錄編輯程式]。

重新啟動電腦

支援ESXi的主機板

可能支援主機板(待機會測試)
Asus Z170-A and I7-6700k ---------------------->  esxi 6.0 U1 (可能問題NIC Intel I219-V is unknown)
ASROCK  H170M-ITX / AC


完全支援主機板
1. Intel® Server Board S1200BT Family     Intel.
2. 技嘉 GA-Z77X-UD5H     Intel.
3. ASUS P8H61-M LX3 PLUS R2.0     Intel. RAM MAX 16G
4. ASUS(華碩) P8B75-M Intel  RAM MAX 32G   Esxi ver 5.01U
5.ASUS(華碩) P8H77-M Intel H77 ,RAM MAX 32G   Esxi  ver 5.01U

intel 第四代
1. ASUS (華碩) H81M-E  Esxi  ver 5.01U


網路卡
1. Intel PRO/1000 GT Desktop Adapter
(

Intel(英代爾) Pro/1000CT Gigabit 桌上型網路卡 RJ45 (EXPI9301CTBLK) PCI-E x1 (82574L)
)

2. Realtek® 8111F, 1 x Gigabit LAN Controller(s)

3.https://vibsdepot.v-front.de/wiki/index.php/Net-e1000e    ------------->Intel 219

半支援主機板套組

1. ASUS M5A78L-M/USB3      
    CPU : AMD  X4 640 E0版 (3100 , 開了 6 核)
    網卡 :  Intel PRO/1000 MT Dual Port Server 1000MT


2.GIGABYTE B85N & INTEL I7-4470 LGA1150   (有支援黑蘋果)
    網卡Intel  i217v  須至VMWARE抓取驅動程式才可安裝。

net-e1000e-2.3.2.x86_64.vib


2012年8月28日 星期二

居易Vigor DHCP修改釋放時間指令

登入TELNET
查詢現在值指令
srv dhcp leasetime /?
修改指令
srv dhcp leasetime 14400   -------> 4小時

2012年7月16日 星期一

Windows7 網芳無法使用,0x800704b3報錯解決

請以下檢查服務有無啟動
DNS Client
Function Discovery Resource Publication
SSDP Discovery
UPnP Device Host
Computer Browser
Server
TCP/IP NetBIOS Helper

或者下清除指令

使用 ipconfig 命令來清除及重設用戶端解析器快取

1 人當中有 1 人評分為有幫助- 為這個主題評分
To flush and reset a client resolver cache using the ipconfig command

開啟 [命令提示字元]。
鍵入:
ipconfig /flushdns

2012年6月15日 星期五

在Ubuntu 使用 Foremost 進行資料救援


1.安裝 Foremost

請使用 apt-get 安裝即可:

# apt-get install foremost


2. 使用 Foremost

首先,Foremost 必須使用 su 權限執行才可以使用,如果要救援的硬碟是 sdb,救援出來的檔案所放置的目錄是 /backup/recovery,如要救援所有已知的檔案類型,請執行以下指令:

# foremost -T all -i /dev/sdb -o /media/recovery

另外如果要救援 sdb1 分割區裡所有的 zip 檔,可改用以下指令:

# foremost -T zip -i /dev/sdb1 -o /media/recovery

PS:救出來的檔案,Foremost 所冠上的副檔名可能沒有辦法反應確實的檔案類型,例如像 *.doc 或 *.ppt 檔可能會被命名為 *.ole,因此必須要找相關的應用軟體直接開看看才能得知確實的檔案類型。

2012年6月13日 星期三

Ubuntu Mount Disk

安裝完新的硬碟之後到/dev/底下尋找新硬碟的代號,例如/dev/sdb

先用fdisk指令分割硬碟(注意不要搞錯硬碟)
fdisk /dev/sdb
# /dev/sdb為硬碟代號
進入之後按m會顯示各指令說明
# p: 顯示目前partition table
# n: 新增一個partition
# d: 刪除一個partition
# l: 列出已知的partition類型
# w: 寫入partition table到硬碟中且離開

分割完之後分別會有/dev/sdb1, /dev/sdb2, ...
然後用mke2fs格式化partition
例如:
mke2fs /dev/sdb1
# /dev/sdb1為partition代號

格式化完之後再將其mount
mount /dev/sdb1 /test
# /test為掛載點

如果需要開機時自動掛載
則需要在/etc/fstab中寫入相關資訊

2012年6月12日 星期二

修改MYSQL PHPMYADMIN 大檔資料庫匯出匯入設定


修改phpMyAdmin資料夾中的config.inc.php檔,
尋找到下列兩行或自行加入:

          $cfg['UploadDir'] = '/etc/phpmyadmin/Import';  ←匯入DB資料夾的名稱及路徑
          $cfg['SaveDir'] = 'Export';       ←匯出DB資料夾的名稱

將在phpmyadmin中建立Import與Export資料夾,用於放置大容量的sql檔。
把欲匯入或匯出的大容量sql檔傳到Import或Export資料夾中,再到phpmyadmin介面,就能發現載入檔案的地方多出上下載資料夾的功能。

2012年5月14日 星期一

在UBUNTU下安裝Apache2 + PHP5 + MySQL + phpMyAdmin


安裝MySQL-Server
sudo apt-get install mysql-server安裝Apache HTTP Server
sudo apt-get install apache2

安裝PHP for Apache HTTP Server
sudo apt-get install php5

安裝MySQL for Apache HTTP Server
sudo apt-get install libapache2-mod-auth-mysql$ sudo apt-get install php5-mysql安裝phpMyAdmin
sudo apt-get install phpmyadmin

裝完後必須先新增一個mysql的帳號
mysqladmin -u root password [密碼]

PHP 7.0版本需另裝以下元件
sudo apt-get install libapache2-mod-php

PS.
這裡新增的root跟系統的root是不同的,如果遺漏第二個步驟會發生錯誤 => #1045 - Access denied for user 'root'@'localhost' (using password: YES)
  • 安裝完畢後套件會自動在/var/www下建立連結,網址列輸入http://127.0.0.1/phpmyadmin即可進入


資料庫預設目錄:/var/lib/mysql
網頁預設目錄:/var/www
Apache設定檔:/etc/apache2/apache2.conf 

Microsoft Office 2010 Word error


Microsoft Office 2010 Word btmofficea.dll error
Office 2010 中 Word 開啟舊檔後發生錯誤
錯誤訊息類式如下
問題簽章:
問題事件名稱: APPCRASH
應用程式名稱: WINWORD.EXE
應用程式版本: 14.0.5123.5000
應用程式時間戳記: 4c646b40
錯誤模組名稱: btmofficea.dll
錯誤模組版本: 3.0.2.280
錯誤模組時間戳記: 4cc57919
例外狀況代碼: c0000005
例外狀況位移: 0000000000005e1f
作業系統版本: 6.1.7601.2.1.0.256.48
地區設定識別碼: 1028

btmofficea.dll 經查結果為提供 Office 軟體藍芽傳送功能之增益集
經關閉後 Word 2010 已經可以正常開啟

建議您可以於WOLD 2010內選擇 檔案 > 選項 > 增益集 > 下面管理 > 
選擇COM 增益集 > 執行 > Send to Bluetooth不勾 > 確定,以解決此問題。

2012年4月1日 星期日

2012年3月30日 星期五

fuser defunct 為PHP5 BUG 耗損CPU 而產生殭屍程序的解決方式

這問題產生在 Ubuntu server 11.10 請修正編輯 /etc/cron.d/php5 更換程式碼如下:

09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -deleteNow everything works fine! :)


2012年3月29日 星期四

2012年3月26日 星期一

Windows XP 遠端桌面-多人遠端登入

緣由 : XP Pro 的遠端桌面只允許一個人連線,當其他使用者使用遠端桌面連線到 XP Pro 時,本機使用者會被強制登出。只要完成下列步驟,就可以解除這個限制,經實測確實可行 (測試機器為 XP Pro SP2 Vol 版本,本機主控台一個工作階段加上兩部電腦遠端登入)。

1. 將 Windows 啟動在安全模式。
2. 按一下 [控制台] 中的 [系統],取消選取 [遠端] 索引標籤中的
[允許使用者遠端連線 到這部電腦],然後按一下 [確定]。
3. 開啟 [控制台][系統管理工具][服務],將 Terminal Services 服務停用,
然後按一下[確定]。
4. 瀏覽到 C:\windows\system32\dllcache 目錄,將termsrv.dll 檔案改成
別的名稱 (例如 termsrv.original)。
5. 從 http://www.orbitfiles.com/download/id20947665 下載無連線數目限制
的 termsrv.dll,然後將它複製到C:\windows\system32\dllcache 目錄。
6. 瀏覽到 C:\windows\system32 目錄,重複步驟 4 與步驟 5
(將 termserv.dll 改成其他名稱,然後將剛下載的檔案複製到此目錄。
7. 開啟 [登錄編輯程式],找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
Terminal Server\Licensing Core 機碼。新增一個名為
EnableConcurrentSessions 的 DWORD 項目,將其值設定為 1,
然後關閉 [登錄編輯程式]。
8. 按一下 [ 開始][執行],輸入 gpedit.msc,然後按一下ENTER。
開啟 [電腦設定][系統管理範本][Windows 元件][終端機服務],
按兩下 [限制連線數目],選擇 [已啟用],然後在
[可允許的 TS 最大連線數目] 中設定想要的最大連線數目。
9. 重新啟動 Windows 在正常模式。
10. 按一下 [控制台] 中的 [系統],選取 [遠端] 索引標籤中的
[允許使用者允端連線到這部電腦],然後按一下 [確定]。
11. 開啟 [控制台][系統管理工具][服務],將 Terminal Services 服務啟動,
然後按一下 [確定]。
12. 重新啟動 Windows。

注意:

1. 您必須為使用者建立帳戶並將他加入 Remote Desktop User群組,
該使用者才能連線。
2. 您可能必須啟用「快速使用者切換」與「歡迎畫面」,按一
下 [開始][控制台][使用者帳戶][變更使用者登入或登出的方式]
以啟用上述兩個功能。
3. 此解決方案可能不適合已加入網域的電腦,因為網域群組原則可能
會覆寫本機群組原則。


資料來源:http://bubble727.pixnet.net/blog/post/4650800-%5Bwindows%5D%E9%81%A0%E7%AB%AF%E6%A1%8C%E9%9D%A2-%E5%A4%9A%E4%BA%BA%E9%81%A0%E7%AB%AF%E7%99%BB%E5%85%A5--windows-xp

2012年3月18日 星期日

2012年3月15日 星期四

舊款10/100MB集線器Switch與周邊GIGA設備傳輸不穩

最近客戶的D-LINK 舊款10/100MB Switch 連接GIGA設備,只要傳大量資料,整台就會掛掉,所以建議有相關問題的人,可以試著更新韌體或更換新款設備。

2012年3月11日 星期日

使用SCP 免密碼

假設想讓 B 主機上面免輸入密碼就能利用 ssh 登入 A 主機.
第一: 在 B 主機上使用以下指令產生 RSA key pair :
# ssh-keygen -t rsa

執行後相關訊息如下:
Enter file in which to save the key (~/.ssh/id_rsa):Enter
Enter passphrase (empty for no passphrase):Enter
Enter same passphrase again:Enter

public key 會放在 ~/.ssh/id_rsa.pub

(PS) :注意內容內的帳號名稱! 預設值大多產生root這帳號,因此做SCP的動作請改成所產生的內容帳號!

將B主機/.ssh/id_rsa.pub的內容,放進 A 主機的 ~/.ssh/authorized_keys的內容內。
設定即可完成,並且可以連線SCP動作而不需要KEY密碼.

2012年3月4日 星期日

調整Apache佔用CPU高使用率的問題

所謂Apache出現CPU高佔用率就是指Apache在一段時間內持續佔用很高的CPU使用率,甚至達到CPU100%,這個時候造成網站無法訪問。解決的方法就是仔細觀察Apache的日誌文件,查閱錯誤的信息。下面我們針對幾種錯誤信息進行分析並給出解決的方法: 1. Apache與Wi
所謂Apache出現CPU高佔用率就是指Apache在一段時間內持續佔用很高的CPU使用率,甚至達到CPU100%,這個時候造成網站無法訪問。解決的方法就是仔細觀察Apache的日誌文件,查閱錯誤的信息。
下面我們針對幾種錯誤信息進行分析並給出解決的方法:
1. Apache與WinSock v2相衝突
Apache官方提供的手冊中提到,在Windows系統下Apache2.x為了提高性能而使用了Microsoft WinSock v2 API,但是一些常見的防火牆軟件會破壞他的正確性,從而使得Apache出現死循環操作造成CPU100%。
其錯誤提示如下所示:
[error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.
[error] (OS 10038) : Child 3356: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.
[warn] (OS 121)信號燈超時時間已到。: winnt_accept: Asynchronous AcceptEx failed.
[warn] (OS 64)指定的網絡名不再可用。: winnt_accept: Asynchronous AcceptEx failed.
可以依次採用下面的方法來解決上面的問題,如果進行了一步還有問題就繼續下一步:
1) 在httpd.conf文件中使用Win32DisableAcceptEx 禁止Apache使用Microsoft WinSock v2 API :
  1. <IfModule mpm_winnt.c>
  2. Win32DisableAcceptEx # 禁止使用AcceptEx()
  3. </IfModule>
2)使用System Repair Engineer(SREng)查看WinSocket供應者,如果出現非MS的陌生項則將其刪除,並使用軟件的“重置WinSocket”按鈕進行重置。
3) 卸載與Apache相衝突的殺毒軟件或防火牆軟件。
如果進行上面的三個步驟之後還有問題,那應該看看是不是還有下面的錯誤。
2. “Terminating 1 threads that failed to exit”錯誤
上面錯誤中的數字1有可能是其他數字,造成這個錯誤的原因是Apache在退出並發線程的時候出現線程溢出,從而造成內存洩露,表現出來的就是Apache所佔用的系統資源持續增長。
解決的方法也很簡單,將最大請求線程的值降低一些,但是也不能太低,太低的話會產生大量的請求隊列從而造成站點訪問緩慢。如果之前為0則將其設置為一個最大值。
  1. MaxRequestsPerChild 10000
3. “file .\\server\\mpm\\winnt\\child.c, line 1078, assertion “(rv >= 0) && (rv < threads_created)” failed” 錯誤
這個錯誤是Apache的一個bug(#11997),可以通過Win32DisableAcceptEx禁止Apache使用WinSocket v2來避免此bug,具體設置見前述。
4. PHP5.2.1以上版本的libmysql.dll與MySQL5不兼容
PHP5.2.1以後的新版本(截止目前最新版本為5.2.5)中用於連接MySQL的libmysql.dll組件與MySQL5不兼容,在Apache中運行PHP的時候會造成Apache產生CPU100%的問題。
解決的方法就是從http://www.php.net/releases/下載5.2.1版本,將壓縮包中的libmysql.dll文件覆蓋現在的文件,然後重啟Apache就可以了。
5.病毒或木馬程序命名為Apache.exe
有的時候病毒或木馬程序會將其名稱命名為Apache.exe文件達到一種掩飾的目的,這個時候使用第三方進程分析器查看進程的路徑然後將其刪除或使用殺毒軟件清除就可以了。
6.程序編寫不嚴謹造成死循環等錯誤
如果上面的問題都不存在Apache依然產生CPU100%的問題的話,通常來說就應該是Web程序自身的問題了,例如死循環等等。這個時候需要在日誌中設置HTTP請求的文件及執行的時間,然後查找出執行時間比較長的地址進行分析排查。
日誌格式設置如下:
LogFormat “%v %h %l %u %t [%Ts] \”%r\” %>s %b” vhost_common #設置程序執行時間
<VirtualHost xxx.xxx.xx.xx:80>
ServerName xxx.xxx.com
DirectoryIndex index.php index.html index.htm
DocumentRoot “xxx”
# cronolog.exe是Apache自帶的用於將日誌文件進行分割的應用程序
CustomLog “|bin/cronolog.exe e:/%Y%m%d.log” vhost_common
</VirtualHost>

對 Apache 連線數多 概念解析


今天說說Apache的最佳化。為什麼要最佳化?因為伺服器資源不夠用。資源有很多方麵,但根據木桶理論,只要有一種資源不夠用,整個伺服器的效能就會受到影響(所謂瓶頸)。
伺服器資源
那麼伺服器的資源包括哪些?對於網站來說主要是CPUTCP連線數這兩者。 CPU表現在工作數上,在Linux下使用平均負載(loadavg)來衡量。可透過以下指令來檢視(參考這篇文章):
cat /proc/loadavg
對於單CPU的伺服器,loadavg高於1,表明工作隊列出現了等待,CPU忙不過來了。超過2以上就會明顯感到效能降低了。
TCP連線數可透過以下指令檢視:
netstat -ant | grep :80 | wc -l
如果要即時監控伺服器資源,可參考OpenNMS項目。
注1:記憶體不算,低廉的價格使得網站伺服器很少有因為記憶體不夠而down掉的。
注2:CPU%是瞬時的CPU使用率,通常無法反映出整體負載。
Apache配置指令
Apache在資源方麵的配置指令主要有以下幾條。
KeepAlive是否允許持續連線
MaxKeepAliveRequests允許的持續連線的最大數
KeepAliveTimeout持續連線在沒有請求多少秒後切斷
StartServers最初啓動時啓動多少個伺服器處理序
MinSpareServers空閒伺服器處理序的最小數
MaxSpareServers空閒伺服器處理序的最大數
MaxRequestsPerChild每個子處理序處理的最大請求數
KeepAlive
前三個KeepAlive相關的指令用來設定持續連線。通常都是每個HTTP請求對應一個TCP連線,但對於一個包含許多圖片的網頁來說,用戶端會在瞬間發出多個HTTP請求,此時多次建立TCP連線會大大降低回應速度。此時透過持續連線,可以允許使用者在一個TCP連線中發出多個HTTP請求,減少TCP 連線建立次數,提高回應速度。
這種情況下,應當透過access_log統計出連續HTTP請求出現的次數、間隔時間、訪問量,以確定 MaxKeepAliveRequests 和 KeepAliveTimeout 的值。 KeepAliveTimeout 太小發揮不了持續連線的作用;太大了,持續連線遲遲不斷,浪費TCP連線數不說,更糟糕的是係統中的 httpd 處理序數目會因此不斷增加,使得係統負載升高,甚至會導緻伺服器失去回應。
但是在處理動態網頁請求時,由於使用者很少會瞬間請求多個動態網頁(一般都是開啟页面之後閱讀好半天才點下一頁),此時開啟KeepAlive無異於浪費TCP連線數。
結論就是,放動態網頁的就 KeepAlive Off 以提高吞吐量,放靜態內容如圖片、js程式碼等就 KeepAlive On 以減少TCP連線建立次數。
但一個Apache隻能有一種 KeepAlive 設定,怎麼辦?很簡單,弄兩臺伺服器,一個專門放指令檔,一個專門放圖片。
伺服器處理序數
再說說下麵的 StartServers、MinSpareServers、MaxSpareServers。 StartServers基本不用修改,因為Apache會自動調節子處理序數。 MinSpareServers和MaxSpareServers是空閒子處理序數目,何為空閒子處理序?假設某一時刻係統中共有30個httpd處理序,其中一個是父處理序,20個在處理請求,那麼空閒子處理序數就是9個。
空閒處理序少了,大量的突發請求會使伺服器疲於處理序建立,降低效率;而太多反而會增加係統處理序數,增大係統負載。
實際上,預設值已足夠處理一般的突發請求,所以除非是流量特別特別巨大的網站,否則不要修改這些設定。
就算流量特別特別大,也是透過負載平衡係統來降低每臺伺服器的訪問量,不會修改這幾個值。
MaxRequestsPerChild
這個值設定子處理序在處理多少個請求之後自動結束。這個選項是用來防止處理序由於記憶體泄漏等使用記憶體過多。一般預設值即可。
總結
說來說去其實最重要的還是 KeepAlive 的設定,而效能調節也就是調整 KeepAlive、KeepAliveTimeout 值。


更多内容 http://ssorc.tw/rewrite.php/read-907.html#ixzz1o6R3hEgX

Apache調教

打開apache2.2的錯誤日誌:
[Thu Feb 16 15:37:18 2012] [error] (OS 10038)在一個非套接字上嘗試了一個操作。  : Child 5316: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.
這個錯誤是CPU佔用率一直是100%
然後上網查了解決辦法:
httpd.conf文件中加入代碼:
<IfModule mpm_winnt.c>
ThreadsPerChild 1000
MaxRequestsPerChild 10000
Win32DisableAcceptEx
</IfModule>
重啟apache,發現
Cpu佔用率降下來了。
原因:apache2.0.49以上的accepteExwindows下出現這個問題。
[Thu Feb 16 16:49:10 2012] [error] (OS 10038)在一個非套接字上嘗試了一個操作。  : Too many errors in select loop. Child process exiting.
[Thu Feb 16 16:49:10 2012] [notice] Child 4216: Exit event signaled. Child process is ending. 
然後在dos運行命令netsh winsock reset再重啟apache
在瀏覽器裡面輸入localhost終於行了