Squid故障與解決方法彙總
阿新 • • 發佈:2019-02-19
1、COSS will not function without large file support (off_t is 4 bytes long. Please reconsider recompiling squid with --with-large-files
Bungled squid_webcache.conf 。。。。。。。
檢查是否在編譯squid的時候未加入--with-large-files 選項,如果是,重新加入此選項再編譯一次squid
2、使用coss快取格式的時候,squid不斷重建cache
可能原因為maxfullbufs值過低,去掉maxfullbufs限制,讓其值為無限
3、日誌中有類似如下的內容:
2007/03/05 14:46:56| Ready to serve requests.
2007/03/05 14:46:59| clientReadRequest: FD 11 (192.168.1.5:34061) Invalid Request
Illegal character in hostname; underscores are not allowed
註釋: 無效的字串,訪問地址中不允許下劃線。
解決辦法 :
squid 2.5 中,編譯的時候加入如下引數
--enable-underscore
允許解析的URL中出現下劃線,因為預設squid會認為帶下劃線的URL地址是非法的,並拒絕訪問該地址。
對於2.6 版本,編譯時沒有這個引數,這個引數出現在squid.conf 的配置文件裡,說明是這樣的:
allow_underscore New option to allow _ in hostnames, replacing the similar build time configure option in 2.5 and earlier.
具體的在squid.conf 中的引數,可以在配置文件裡搜尋一下allow_underscore,看一下配置文件的具體註釋。
4、squid的cache.log日誌中又類似如下的警告:
WARNING: 100 swapin MD5 mismatches
這個錯誤是說squid讀入一個快取檔案的時候,儲存在介面對應的位置的URL不是
squid認為應該儲存在那裡的資料。這可能是swap.state有錯誤或檔案指到了磁碟
上錯誤的塊(檔案系統有錯誤)。
停止squid應用,刪除swap.state然後啟動squid,讓它通過讀取快取檔案來重建快取
記錄,如果重建後仍然出現上面的情況,那應該就是檔案系統或磁碟有問題了。
5、日誌中出現下面警告:
Jun 28 11:14:38 localhost squid[27178]: squidaio_queue_request: Syncing pending I/O operations.. (blocking)
Jun 28 11:14:59 localhost squid[27178]: squidaio_queue_request: Synced
Jun 28 11:14:59 localhost squid[27178]: storeAufsOpenDone: (2) No such file or directory
Jun 28 11:14:59 localhost squid[27178]: /data/squid/cache_webcache1/00/6B/00006B29
Jun 28 11:14:59 localhost squid[27178]: storeAufsOpenDone: (2) No such file or directory
Jun 28 11:14:59 localhost squid[27178]: /data/squid/cache_webcache1/00/DC/0000DC36
Jun 28 11:14:59 localhost squid[27178]: WARNING: 1 swapin MD5 mismatches
Jun 28 11:14:59 localhost squid[27178]: WARNING: Disk space over limit: 18925740 KB > 16777216 KB
Jun 28 11:14:59 localhost squid[27178]: storeAufsOpenDone: (2) No such file or directory
Jun 28 11:14:59 localhost squid[27178]: /data/squid/cache_webcache2/00/92/0000924F
Jun 28 11:14:59 localhost squid[27178]: storeAufsOpenDone: (2) No such file or directory
Jun 28 11:14:59 localhost squid[27178]: /data/squid/cache_webcache1/03/6F/00036FB6
Jun 28 11:14:59 localhost squid[27178]: squidaio_queue_request: Async request queue growing uncontrollably!
解決方法:
檢查配置檔案,cache設定為aufs檔案系統格式,將此設定改為ufs,重建cache快取目錄
6、執行reconfigure的時候出現squid: ERROR: no running copy
原因是找不到pid檔案,如果不是使用預設的squid.conf作為squid的設定檔案,在用squid目錄下sbin/squid進行重新啟動等動作的時候要加上-f的引數制定配置檔案,同時檢查pid檔案是否存在,有時候可能錯誤地配置了pid檔案到不存在的目錄,或者將pid檔案配置到了應用沒有許可權寫入的目錄,導致沒有建立pid檔案,如果pid檔案不存在,可以手工建立該pid,然後獲取squid的pid並寫人pid檔案。
7、squid在壓力大的情況下響應非常慢
檢查是否檔案描述符太小,如果是,調整檔案描述符限制,重啟squid,檢查squid執行的檔案描述符,如果為調整後的,則在啟動指令碼處啟動squid的地方加入調整檔案描述符的命令,否則除此外還需先調整檔案描述符限制然後重新編譯安裝一次squid
8、快取效率下降,檢視日誌無報錯,netstat -na檢視連線有比較多的連線為SYN_RE,且多為同一IP過來的連線
優化TCP網路
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/tcp_synack_retries
echo 1 > /proc/sys/net/ipv4/tcp_syn_retries
9、快取效率低,網絡卡輸入輸出流量差距很小。
首先檢視系統日誌有無squid的報錯,如果沒有再檢視dmesg,看看有無丟包,是否網絡卡問題,如果沒有再檢視閘道器
使用squid的時候閘道器問題關係重大,如果閘道器沒有配置正確,將可能導致使用者訪問不了。
10、日誌報如下錯誤:squid: Could not determine fully qualified hostname. Please set 'visible_hostname'
檢查/etc/hosts檔案、/etc/sysconfig/network檔案、和hostname命令結果,看看三者是否對應,如果不對應,需要修改為對應,並且/etc/hosts檔案中對應的配置還需要有合法域名格式
/etc/sysconfig/network中的hostname是系統啟動時候載入的hostname值,如果此值與/etc/hosts檔案中的值不對應並且squid中沒有設定visible_hostname選項的話,會導致系統重啟後squid不能正常啟動。
11、日誌大量報如下錯誤:
Apr 29 08:28:56 localhost squid[13851]: httpReadReply: Excess data from "HEAD http://192.168.230.1/"
Apr 29 08:28:56 localhost squid[13851]: httpReadReply: Excess data from "HEAD http://192.168.230.1/"
這表明伺服器返回一個超過squid宣告的響應物件最大值的返回值。
它違反了HTTP協議並導致伺服器返回被截斷。
Bungled squid_webcache.conf 。。。。。。。
檢查是否在編譯squid的時候未加入--with-large-files 選項,如果是,重新加入此選項再編譯一次squid
2、使用coss快取格式的時候,squid不斷重建cache
可能原因為maxfullbufs值過低,去掉maxfullbufs限制,讓其值為無限
3、日誌中有類似如下的內容:
2007/03/05 14:46:56| Ready to serve requests.
2007/03/05 14:46:59| clientReadRequest: FD 11 (192.168.1.5:34061) Invalid Request
Illegal character in hostname; underscores are not allowed
註釋: 無效的字串,訪問地址中不允許下劃線。
解決辦法 :
squid 2.5 中,編譯的時候加入如下引數
--enable-underscore
允許解析的URL中出現下劃線,因為預設squid會認為帶下劃線的URL地址是非法的,並拒絕訪問該地址。
對於2.6 版本,編譯時沒有這個引數,這個引數出現在squid.conf 的配置文件裡,說明是這樣的:
allow_underscore New option to allow _ in hostnames, replacing the similar build time configure option in 2.5 and earlier.
具體的在squid.conf 中的引數,可以在配置文件裡搜尋一下allow_underscore,看一下配置文件的具體註釋。
4、squid的cache.log日誌中又類似如下的警告:
WARNING: 100 swapin MD5 mismatches
這個錯誤是說squid讀入一個快取檔案的時候,儲存在介面對應的位置的URL不是
squid認為應該儲存在那裡的資料。這可能是swap.state有錯誤或檔案指到了磁碟
上錯誤的塊(檔案系統有錯誤)。
停止squid應用,刪除swap.state然後啟動squid,讓它通過讀取快取檔案來重建快取
記錄,如果重建後仍然出現上面的情況,那應該就是檔案系統或磁碟有問題了。
5、日誌中出現下面警告:
Jun 28 11:14:38 localhost squid[27178]: squidaio_queue_request: Syncing pending I/O operations.. (blocking)
Jun 28 11:14:59 localhost squid[27178]: squidaio_queue_request: Synced
Jun 28 11:14:59 localhost squid[27178]: storeAufsOpenDone: (2) No such file or directory
Jun 28 11:14:59 localhost squid[27178]: /data/squid/cache_webcache1/00/6B/00006B29
Jun 28 11:14:59 localhost squid[27178]: storeAufsOpenDone: (2) No such file or directory
Jun 28 11:14:59 localhost squid[27178]: /data/squid/cache_webcache1/00/DC/0000DC36
Jun 28 11:14:59 localhost squid[27178]: WARNING: 1 swapin MD5 mismatches
Jun 28 11:14:59 localhost squid[27178]: WARNING: Disk space over limit: 18925740 KB > 16777216 KB
Jun 28 11:14:59 localhost squid[27178]: storeAufsOpenDone: (2) No such file or directory
Jun 28 11:14:59 localhost squid[27178]: /data/squid/cache_webcache2/00/92/0000924F
Jun 28 11:14:59 localhost squid[27178]: storeAufsOpenDone: (2) No such file or directory
Jun 28 11:14:59 localhost squid[27178]: /data/squid/cache_webcache1/03/6F/00036FB6
Jun 28 11:14:59 localhost squid[27178]: squidaio_queue_request: Async request queue growing uncontrollably!
解決方法:
檢查配置檔案,cache設定為aufs檔案系統格式,將此設定改為ufs,重建cache快取目錄
6、執行reconfigure的時候出現squid: ERROR: no running copy
原因是找不到pid檔案,如果不是使用預設的squid.conf作為squid的設定檔案,在用squid目錄下sbin/squid進行重新啟動等動作的時候要加上-f的引數制定配置檔案,同時檢查pid檔案是否存在,有時候可能錯誤地配置了pid檔案到不存在的目錄,或者將pid檔案配置到了應用沒有許可權寫入的目錄,導致沒有建立pid檔案,如果pid檔案不存在,可以手工建立該pid,然後獲取squid的pid並寫人pid檔案。
7、squid在壓力大的情況下響應非常慢
檢查是否檔案描述符太小,如果是,調整檔案描述符限制,重啟squid,檢查squid執行的檔案描述符,如果為調整後的,則在啟動指令碼處啟動squid的地方加入調整檔案描述符的命令,否則除此外還需先調整檔案描述符限制然後重新編譯安裝一次squid
8、快取效率下降,檢視日誌無報錯,netstat -na檢視連線有比較多的連線為SYN_RE,且多為同一IP過來的連線
優化TCP網路
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/tcp_synack_retries
echo 1 > /proc/sys/net/ipv4/tcp_syn_retries
9、快取效率低,網絡卡輸入輸出流量差距很小。
首先檢視系統日誌有無squid的報錯,如果沒有再檢視dmesg,看看有無丟包,是否網絡卡問題,如果沒有再檢視閘道器
使用squid的時候閘道器問題關係重大,如果閘道器沒有配置正確,將可能導致使用者訪問不了。
10、日誌報如下錯誤:squid: Could not determine fully qualified hostname. Please set 'visible_hostname'
檢查/etc/hosts檔案、/etc/sysconfig/network檔案、和hostname命令結果,看看三者是否對應,如果不對應,需要修改為對應,並且/etc/hosts檔案中對應的配置還需要有合法域名格式
/etc/sysconfig/network中的hostname是系統啟動時候載入的hostname值,如果此值與/etc/hosts檔案中的值不對應並且squid中沒有設定visible_hostname選項的話,會導致系統重啟後squid不能正常啟動。
11、日誌大量報如下錯誤:
Apr 29 08:28:56 localhost squid[13851]: httpReadReply: Excess data from "HEAD http://192.168.230.1/"
Apr 29 08:28:56 localhost squid[13851]: httpReadReply: Excess data from "HEAD http://192.168.230.1/"
這表明伺服器返回一個超過squid宣告的響應物件最大值的返回值。
它違反了HTTP協議並導致伺服器返回被截斷。