CHOST是沒錯的 ,但是你的CFLAGS不對, 對於GCC4.2.2以上的版本 ,不需要那麼復雜,-march=native就足夠了
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
而且目前的硬體環境,-O2足矣 ,-O3很多時候甚至不如-O2 ,而且可能會有隱患
當然如果你不太信任這個 ,還是覺得原始的-march好一點 那麼可以用下面的
32位系統的調優參數
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
64位系統的調優參數
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
另外 事實上 -march=native是gcc自動選擇最適合cpu的優化
-march=prescott 和 -march=nocona 前者是32位使用的 後者是64位使用的,而且這個march中已經包含了該級別cpu所有的-msse2 -mmmx -mfpmath=sse -msse3 -mssse3這些標簽 所以不需要再額外添加
-msse2 -mmmx這些是針對-march=i686這樣的基礎標簽的補充
另外,apache上,用gcc優化編譯出來對性能可以說沒什麼提升,跟直接安裝二進制包的差距微不可聞 ,畢竟apache是個吃內存的服務 所以 穩定性第一啦
㈡ linux apache 進程爆滿怎麼解決。
1、增加伺服器,負載均衡
2、增加cpu、內存,開啟更多apache進程
3、優化程序,讓程序更快完成,不佔用有限的進程數
4、更換為更優秀的cgi代理,如nginx
5、重啟apache(治標不治本)
6、重寫apache(這個一般人做不到)
……
㈢ linux apache 性能調優 8G 8核 的伺服器
[檢測工具]
為了得到完整的調試結果,建議你採用 ApacheBench 或者 httperf之類的軟體。如果你對非 LAMP 架構的伺服器測試有興趣的話,建議你採用微軟的免費軟體: Web Application Stress Tool(需要 NT 或者 2000)。 (其它伺服器測試工具)
檢測 Apache ,採用 top d 1 顯示所有進程的 CPU 和內存情況。另外,還採用 apachectl status 命令
[硬體優化]
1、升級硬體的一般規則:對於 php 腳本而言,主要的瓶頸是 CPU ,對於靜態頁面而言,瓶頸是內存和網路。一台 400 Mhz 的普通奔騰機器所下載的靜態頁面就能讓 T3 專線(45Mbps)飽和。
2、採用 hdparm 來優化磁碟,一般能提升 IDE 磁碟讀寫性能 200%,但是對 SCSI 硬碟也有效果。(不同類型的硬碟對比)
[策略優化]
3、Apache 處理 PHP 腳本的速度要比靜態頁面慢 2-10 倍,因此盡量採用多的靜態頁面,少的腳本。
4、PHP 腳本如果不做緩沖,每次調用都需要編譯,因此,安裝一個 PHP 緩沖產品能提升 25-100% 的性能。
5、如果你採用了 Linux 系統,建議升級內核到 2.4,因為靜態頁面由內核服務。
6、另外一項緩沖技術是把不常修改的 PHP 頁面採用 HTML 緩沖輸出。
7、不要在 Web 伺服器上運行 X-Windows ,關掉沒有必要運行的進程。
8、如果能夠用文本就不要用圖像,盡量減小圖片的尺寸。
9、分散負載,把資料庫伺服器放到另外的機器上去。採用另外低端的機器服務圖片和 HTML 頁面,如果所有的靜態頁面在另外一台伺服器上處理,可以設置 httpd.conf 中的 KeepAlives 為 off ,來減少斷開連接的時間。
10、以上所有的方法都是針對單機而言的,如果你覺得系統還是不夠快,可以採用集群,負載均衡,緩沖技術。採用 Squid 作為緩沖,配置 Squid 的方法。
[編譯優化]
11、把基於文件的會話切換到基於共享內存的會話。編譯 PHP 時採用 --with-mm 選項,在 php.ini 中設置 set session.save_handler=mm 。這個簡單的修改能讓會話管理時間縮短一半。
12、採用最新版本的 Apache ,並把 PHP 編譯其中,或者採用 DSO 模式,不要採用 CGI 方式。
13、編譯 PHP 時,建議採用如下的參數:
--enable-inline-optimization --disable-debug
[配置優化]
14、修改 httpd.conf :
# 關閉 DNS lookups,PHP 腳本只拿 IP 地址
HostnameLookups off
15、如果網路擁擠,CPU 資源不夠用,採用 PHP 的 HTML 壓縮功能:
output_handler = ob_gzhandler
PHP 4.0.4 的用戶請不要使用,因為存在內存泄漏問題。
16、修改 httpd.conf 中的 SendBufferSize 為你最大的頁面文件的大小。加大內核的 TCP/IP 寫緩沖大小。
17、採用資料庫的持久連接時,不要把 MaxRequestsPerChild 設置得太大。
[第三方軟體優化]
18、如果喜歡從修改 Apache 源碼入手,可以安裝 lingerd。在頁面產生和發送後,每個 Apache 進程都會浪費一段時光在客戶連接上,Lingerd 能接管這項工作,讓 Apache 迅速服務下一個客戶請求。
19、如果你足夠勇敢的話,還可以採用 Silicon Graphics 的 Accelerated Apache 補丁。這個工程能使 Apache 1.3 快 10 倍,使 Apache 2.0 快 4 倍。
安裝一個 PHP 緩沖產品能提升 25-100% 的性能。
[Linux系統優化]
1.清理伺服器磁碟碎片:
不論Linux文件系統採用什麼文件格式(ext3、JFS、XFS、ReiserFS )、何種類型的硬碟(IDE 、SCSI),隨著時間的推移文件系統都會趨向於碎片化。ext3、JFS等高級文件系統可以減少文件系統的碎片化,但是並沒有消除。在繁忙的資料庫伺服器中,隨著時間的過去,文件碎片化將降低硬碟性能,硬碟性能從硬碟讀出或寫入數據時才能注意到。時間長了會發現每個磁碟上確實積累了非常多的垃圾文件,釋放磁碟空間可以幫助系統更好地工作。Linux最好的整理磁碟碎片的方法是做一個完全的備份,重新格式化分區,然後從備份恢復文件。但是對於7×24小時工作關鍵任務伺服器來說是比較困難的。Kleandisk是一個高效的磁碟清理工具,它能把磁碟上的文件分成不同的"組",比如把所有的"core"文件歸成一組(Group),這樣要刪除所有core文件時只要刪除這個組就行了。core文件是當軟體運行出錯時產生的文件,它對於軟體開發人員比較有用,對於其他用戶(比如電子郵件伺服器)卻沒有任何意義。因此,如果沒有軟體開發的需要,見到core文件就可以將其刪除。
2、開啟硬碟DMA
現在使用的IDE硬碟基本支持DMA66/100/133(直接內存讀取)但是Linux發行版本安裝後一般沒有打開,可以 /etc/rc.d/rc.local 最後面加上一行: /sbin/hdparm -d1 –x66 -c3 -m16 /dev/hda 這樣以後每次開機,硬碟的 DMA 就會開啟,不必每次手動設定。添加前後你可以使用命令:hdparm -Tt /dev/hda 來測試對比一下。
3、調整緩沖區刷新參數
Linux內核中,包含了一些對於系統運行態的可設置參數。緩沖刷新的參數可以通過調整 /proc/sys/vm/bdflush文件來完成,這個文件的格式是這樣的:
「mode」的值表示工作模式,共有0、1、2和3四種模式,這里設定為0。Bonding工作在負載均衡(Load Balancing (round-robin))方式下,即兩塊網卡同時工作,這時理論上Bonding能提供兩倍的帶寬。Bonding運行在網卡的混雜(Promisc)模式下,而且它將兩塊網卡的MAC地址修改為一樣的。混雜模式就是網卡不再只接收目的硬體地址是自身MAC地址的數據幀,而是可以接收網路上所有的幀。
5、減少虛擬終端機的數量。
Linux安裝後系統默認是6個虛擬終端機,也就是 CTRL+ALT F1~F6 那六個,作為伺服器使用可以關掉其中四個,只留下 CTRL+ALT F1~F2,大約省下 4 Mbytes 的內存,但是這樣一來,X-Window 會從原來的 CTRL+ALT F7 變成 CTRL+ALT F3 。 修改 /etc/inittab 中,將 mingetty 3 ~6 全部加上 # 字型大小 。
6. 關閉一些不用的服務
Linux伺服器在啟動時需要啟動很多系統服務,它們向本地和網路用戶提供了Linux的系統功能介面,直接面向應用程序和用戶。提供這些服務的程序是由運行在後台的守護進程(daemons)來執行的。守護進程是生存期長的一種進程。它們獨立於控制終端並且周期性的執行某種任務或等待處理某些發生的事件。他們常常在系統引導裝入時啟動,在系統關閉時終止。linux系統有很多守護進程,大多數伺服器都是用守護進程實現的。如Web服務http等。同時,守護進程完成許多系統任務,比如,作業規劃進程crond、列印進程lqd等。