中文字幕人妻中文_99精品欧美一区二区三区综合在线_精品久久久久一区二区_色月丁香_免费福利在线视频_欧美大片免费观看网址_国产伦精品一区二区三区在线播放_污污污污污污www网站免费_久久月本道色综合久久_色69激情爱久久_尹人香蕉久久99天天拍_国产美女www_亚洲国产精品无码7777一线_五月婷婷六月激情_看免费一级片_精品久久久久久成人av_在线色亚洲_女人另类性混交zo_国产精品青青在线观看爽香蕉_人人澡人人添人人爽一区二区

主頁 > 知識庫 > APACHE性能方面的提示

APACHE性能方面的提示

熱門標簽:怎樣使用奧維地圖標注位置 濟南呼叫中心外呼系統如何 黃石外呼saas系統 揭陽外呼系統收費 鳳城市地圖標注app 菏澤監獄親情電話機器人 模型地圖標注 臨沂ai電銷機器人價格 地圖標注怎么上交呢

Apache2.0是一個多用途的web服務器,其設計在靈活性、可移植性和性能中求得平衡。雖然沒有在設計上刻意追求性能指標,但是Apache2.0仍然在許多現實環境中擁有很高的性能。

相比于Apache 1.3 ,2.0版本作了大量的優化來提升處理能力和可伸縮性,而且大多數的改進在默認狀態下就可以生效。但是,在編譯時和運行時,都有許多可以顯著提高性能的選擇。本文闡述在安裝Apache2.0時,服務器管理員可以改善性能的各種方法。其中,部分配置選擇可以使httpd更好地利用硬件和操作系統的兼容性,其他則是以功能換取速度。
top
硬件和操作系統

影響web服務器性能的最大的因素是內存。一個web服務器應該從不使用交換機制,因為交換產生的滯后使用戶總感覺"不夠快",所以用戶就可能去按"停止"和"刷新",從而帶來更大的負載。你可以,也應該,控制MaxClients的設置,以避免服務器產生太多的子進程而發生交換。這個過程很簡單:通過top命令計算出每個Apache進程平均消耗的內存,然后再為其它進程留出足夠多的內存。

其他因素就很普通了,裝一個足夠快的CPU,一個足夠快的網卡,幾個足夠快的硬盤,這里說的"足夠快"是指能滿足實際應用的需求。

操作系統是很值得關注的又一個因素,已經被證實的很有用的經驗有:

  *

    選擇能夠得到的最新最穩定的版本并打好補丁。近年來,許多操作系統廠商都提供了可以顯著改善性能的TCP協議棧和線程庫。
  *

    如果你的操作系統支持sendfile()系統調用,則務必安裝帶有此功能的版本或補丁(對Linux來說,就是使用Linux2.4或更高版本,對Solaris8的早期版本,則需要安裝補丁)。在支持sendfile的系統中,Apache2可以更快地發送靜態內容而且占用較少的CPU時間。

top
運行時的配置
相關模塊   相關指令

  * mod_dir
  * mpm_common
  * mod_status

 

  * AllowOverride
  * DirectoryIndex
  * HostnameLookups
  * EnableMMAP
  * EnableSendfile
  * KeepAliveTimeout
  * MaxSpareServers
  * MinSpareServers
  * Options
  * StartServers

HostnameLookups 和其他DNS考慮

在Apache1.3以前的版本中,HostnameLookups默認被設為 On 。它會帶來延遲,因為對每一個請求都需要作一次DNS查詢。在Apache1.3中,它被默認地設置為 Off 。如果需要日志文件提供主機名信息以生成分析報告,則可以使用日志后處理程序logresolve ,以完成DNS查詢,而客戶端無須等待。

推薦你最好是在其他機器上,而不是在web服務器上執行后處理和其他日志統計操作,以免影響服務器的性能。

如果你使用了任何"Allow from domain"或"Deny from domain"指令(也就是domain使用的是主機名而不是IP地址),則代價是要進行兩次DNS查詢(一次正向和一次反向,以確認沒有作假)。所以,為了得到最高的性能,應該避免使用這些指令(不用域名而用IP地址也是可以的)。

注意,可以把這些指令包含在Location /server-status>段中使之局部化。在這種情況下,只有對這個區域的請求才會發生DNS查詢。下例禁止除了.html和.cgi以外的所有DNS查詢:

HostnameLookups off
Files ~ "\.(html|cgi)$">
HostnameLookups on
/Files>

如果在某些CGI中偶爾需要DNS名稱,則可以調用gethostbyname來解決。
FollowSymLinks 和 SymLinksIfOwnerMatch

如果網站空間中沒有使用 Options FollowSymLinks ,或使用了 Options SymLinksIfOwnerMatch ,Apache就必須執行額外的系統調用以驗證符號連接。文件名的每一個組成部分都需要一個額外的調用。例如,如果設置了:

DocumentRoot /www/htdocs
Directory />
Options SymLinksIfOwnerMatch
/Directory>

在請求"/index.html"時,Apache將對"/www"、"/www/htdocs"、"/www/htdocs/index.html"執行lstat()調用。而且lstat()的執行結果不被緩存,因此對每一個請求都要執行一次。如果確實需要驗證符號連接的安全性,則可以這樣:

DocumentRoot /www/htdocs
Directory />
Options FollowSymLinks
/Directory>

Directory /www/htdocs>
Options -FollowSymLinks +SymLinksIfOwnerMatch
/Directory>

這樣,至少可以避免對DocumentRoot路徑的多余的驗證。注意,如果Alias或RewriteRule中含有DocumentRoot以外的路徑,那么同樣需要增加這樣的段。為了得到最佳性能,應當放棄對符號連接的保護,在所有地方都設置FollowSymLinks ,并放棄使用SymLinksIfOwnerMatch 。
AllowOverride

如果網站空間允許覆蓋(通常是用.htaccess文件),則Apache會試圖對文件名的每一個組成部分都打開.htaccess ,例如:

DocumentRoot /www/htdocs
Directory />
AllowOverride all
/Directory>

如果請求"/index.html",則Apache會試圖打開"/.htaccess"、"/www/.htaccess"、"/www/htdocs/.htaccess"。其解決方法和前面所述的 Options FollowSymLinks 類似。為了得到最佳性能,應當對文件系統中所有的地方都使用 AllowOverride None 。
內容協商

實踐中,內容協商的好處大于性能的損失,如果你很在意那一點點的性能損失,則可以禁止使用內容協商。但是仍然有個方法可以提高服務器的速度,就是不要使用通配符,如:

DirectoryIndex index

而使用完整的列表,如:

DirectoryIndex index.cgi index.pl index.shtml index.html

其中最常用的應該放在前面。

還有,建立一個明確的type-map文件在性能上優于使用"Options MultiViews",因為所有需要的信息都在一個單獨的文件中,而無須搜索目錄。請參考內容協商文檔以獲得更詳細的協商方法和創建type-map文件的指導。
內存映射

在Apache2.0需要搜索被發送文件的內容時,比如處理服務器端包含時,如果操作系統支持某種形式的mmap() ,則會對此文件執行內存映射。

在某些平臺上,內存映射可以提高性能,但是在某些情況下,內存映射會降低性能甚至影響到httpd的穩定性:

  *

    在某些操作系統中,如果增加了CPU,mmap還不如read()迅速。比如,在多處理器的Solaris服務器上,關閉了mmap ,Apache2.0傳送服務端解析文件有時候反而更快。
  *

    如果你對作為NFS裝載的文件系統中的一個文件進行了內存映射,而另一個NFS客戶端的進程刪除或者截斷了這個文件,那么你的進程在下一次訪問已經被映射的文件內容時,會產生一個總線錯誤。

如果有上述情況發生,則應該使用 EnableMMAP off 關閉對發送文件的內存映射。注意:此指令可以被針對目錄的設置覆蓋。
Sendfile

在Apache2.0能夠忽略將要被發送的文件的內容的時候(比如發送靜態內容),如果操作系統支持sendfile() ,則Apache將使用內核提供的sendfile()來發送文件。

在大多數平臺上,使用sendfile可以通過免除分離的讀和寫操作來提升性能。然而在某些情況下,使用sendfile會危害到httpd的穩定性

  *

    一些平臺可能會有Apache編譯系統檢測不到的有缺陷的sendfile支持,特別是將在其他平臺上使用交叉編譯得到的二進制文件運行于當前對sendfile支持有缺陷的平臺時。
  *

    對于一個掛載了NFS文件系統的內核,它可能無法可靠的通過自己的cache服務于網絡文件。

如果出現以上情況,你應當使用"EnableSendfile off"來禁用sendfile 。注意,這個指令可以被針對目錄的設置覆蓋。
進程的建立

在Apache1.3以前,MinSpareServers, MaxSpareServers, StartServers的設置對性能都有很大的影響。尤其是為了應對負載而建立足夠的子進程時,Apache需要有一個"漸進"的過程。在最初建立StartServers數量的子進程后,為了滿足MinSpareServers設置的需要,每一秒鐘只能建立一個子進程。所以,對一個需要同時處理100個客戶端的服務器,如果StartServers使用默認的設置5,則為了應對負載而建立足夠多的子進程需要95秒。在實際應用中,如果不頻繁重新啟動服務器,這樣還可以,但是如果僅僅為了提供10分鐘的服務,這樣就很糟糕了。

" 一秒鐘一個"的規定是為了避免在創建子進程過程中服務器對請求的響應停頓,但是它對服務器性能的影響太大了,必須予以改變。在Apache1.3中,這個 "一秒鐘一個"的規定變得寬松了,創建一個進程,等待一秒鐘,繼續創建第二個,再等待一秒鐘,繼而創建四個,如此按指數級增加創建的進程數,最多達到每秒 32個,直到滿足MinSpareServers設置的值為止。

從多數反映看來,似乎沒有必要調整MinSpareServers, MaxSpareServers, StartServers 。如果每秒鐘創建的進程數超過4個,則會在ErrorLog中產生一條消息,如果產生大量此消息,則可以考慮修改這些設置。可以使用mod_status的輸出作為參考。

與進程創建相關的是由MaxRequestsPerChild引發的進程的銷毀。其默認值是"0",意味著每個進程所處理的請求數是不受限制的。如果此值設置得很小,比如30,則可能需要大幅增加。在SunOS或者Solaris的早期版本上,其最大值為10000以免內存泄漏。

如果啟用了持久鏈接,子進程將保持忙碌狀態以等待被打開連接上的新請求。為了最小化其負面影響,KeepAliveTimeout的默認值被設置為5秒,以謀求網絡帶寬和服務器資源之間的平衡。在任何情況下此值都不應當大于60秒,參見most of the benefits are lost。
top
編譯時的配置
選擇一個MPM

Apache 2.x 支持插入式并行處理模塊,稱為多路處理模塊(MPM)。在編譯Apache時你必須選擇也只能選擇一個MPM,這里有幾個針對非UNIX系統的MPM:beos, mpm_netware, mpmt_os2, mpm_winnt。對類UNIX系統,有幾個不同的MPM可供選擇,他們都會影響到httpd的速度和可伸縮性:

  * workerMPM使用多個子進程,每個子進程中又有多個線程。每個線程處理一個請求。該MPM通常對高流量的服務器是一個不錯的選擇。因為它比preforkMPM需要更少的內存且更具有伸縮性。
  * preforkMPM使用多個子進程,但每個子進程并不包含多線程。每個進程只處理一個鏈接。在許多系統上它的速度和workerMPM一樣快,但是需要更多的內存。這種無線程的設計在某些情況下優于workerMPM:它可以應用于不具備線程安全的第三方模塊(比如php3/4/5),且在不支持線程調試的平臺上易于調試,而且還具有比workerMPM更高的穩定性。

關于MPM的更多內容,請參考其文檔。
模塊

既然內存用量是影響性能的重要因素,你就應當盡量去除你不需要的模塊。如果你將模塊編譯成DSO ,取消不必要的模塊就是一件非常簡單的事情:注釋掉LoadModule指令中不需要的模塊。

如果你已經將模塊靜態鏈接進Apache二進制核心,你就必須重新編譯Apache并去掉你不想要的模塊。

增減模塊牽涉到的一個問題是:究竟需要哪些模塊、不需要哪些模塊?這取決于服務器的具體情況。一般說來,至少要包含下列模塊:mod_mime, mod_dir, mod_log_config 。你也可以不要mod_log_config ,但是一般不推薦這樣做。
原子操作

一些模塊,比如mod_cache和worker使用APR(Apache可移植運行時)的原子API。這些API提供了能夠用于輕量級線程同步的原子操作。

默認情況下,APR在每個目標OS/CPU上使用其最有效的特性執行這些操作。比如許多現代CPU的指令集中有一個原子的比較交換(compare-and -swap, CAS)操作指令。在一些老式平臺上,APR默認使用一種緩慢的、基于互斥執行的原子API以保持對沒有CAS指令的老式CPU的兼容。如果你只打算在新式的CPU上運行Apache,你可以在編譯時使用 --enable-nonportable-atomics 選項:

./buildconf
./configure --with-mpm=worker --enable-nonportable-atomics=yes

--enable-nonportable-atomics 選項只和下列平臺相關:

  * SPARC上的Solaris
    默認情況下,APR使用基于互斥執行的原子操作。如果你使用 --enable-nonportable-atomics 選項,APR將使用SPARC v8plus操作碼來加快基于硬件的CAS操作。注意,這僅對UltraSPARC CPU有效。
  * x86上的Linux
    默認情況下,APR在Linux上使用基于互斥執行的原子操作。如果你使用 --enable-nonportable-atomics 選項,APR將使用486操作碼來加快基于硬件的CAS操作。注意,這僅對486以上的CPU有效。

mod_status 和 "ExtendedStatus On"

如果Apache在編譯時包含了mod_status ,而且在運行時設置了"ExtendedStatus On",那么Apache會對每個請求調用兩次gettimeofday()(或者根據操作系統的不同,調用times())以及(1.3版之前)幾個額外的time()調用,使狀態記錄帶有時間標志。為了得到最佳性能,可以設置"ExtendedStatus off"(這也是默認值)。
多socket情況下的串行accept
警告

這部分內容尚未完全根據Apache2.0中的變化進行更新 。一些信息依然有效,使用中請注意。

這里要說的是 Unix socket API 的一個缺點。假設web服務器使用了多個Listen語句****多個端口或者多個地址,Apache會使用select()以檢測每個socket是否就緒。select()會表明一個socket有零或至少一個連接正等候處理。由于Apache的模型是多子進程的,所有空閑進程會同時檢測新的連接。一個很天真的實現方法是這樣的(這些例子并不是源代碼,只是為了說明問題而已):

for (;;) {
for (;;) {
fd_set accept_fds;

FD_ZERO (&accept_fds);
for (i = first_socket; i = last_socket; ++i) {
FD_SET (i, &accept_fds);
}
rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
if (rc 1) continue;
new_connection = -1;
for (i = first_socket; i = last_socket; ++i) {
if (FD_ISSET (i, &accept_fds)) {
new_connection = accept (i, NULL, NULL);
if (new_connection != -1) break;
}
}
if (new_connection != -1) break;
}
process the new_connection;
}

這種天真的實現方法有一個嚴重的"饑餓"問題。如果多個子進程同時執行這個循環,則在多個請求之間,進程會被阻塞在select ,隨即進入循環并試圖accept此連接,但是只有一個進程可以成功執行(假設還有一個連接就緒),而其余的則會被阻塞在accept 。這樣,只有那一個socket可以處理請求,而其他都被鎖住了,直到有足夠多的請求將它們喚醒。此"饑餓"問題在PR#467中有專門的講述。目前至少有兩種解決方案。

一種方案是使用非阻塞型socket ,不阻塞子進程并允許它們立即繼續執行。但是這樣會浪費CPU時間。設想一下,select有10個子進程,當一個請求到達的時候,其中9個被喚醒,并試圖accept此連接,繼而進入select循環,無所事事,并且其間沒有一個子進程能夠響應出現在其他socket上的請求,直到退出select循環。總之,這個方案效率并不怎么高,除非你有很多的CPU,而且開了很多子進程。

另一種也是Apache所使用的方案是,使內層循環的入口串行化,形如(不同之處以高亮顯示):

for (;;) {
accept_mutex_on ();
for (;;) {
fd_set accept_fds;

FD_ZERO (&accept_fds);
for (i = first_socket; i = last_socket; ++i) {
FD_SET (i, &accept_fds);
}
rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
if (rc 1) continue;
new_connection = -1;
for (i = first_socket; i = last_socket; ++i) {
if (FD_ISSET (i, &accept_fds)) {
new_connection = accept (i, NULL, NULL);
if (new_connection != -1) break;
}
}
if (new_connection != -1) break;
}
accept_mutex_off ();
process the new_connection;
}

函數accept_mutex_on和accept_mutex_off實現了一個互斥信號燈,在任何時刻只被為一個子進程所擁有。實現互斥的方法有多種,其定義位于src/conf.h(1.3以前的版本)或src/include/ap_config.h(1.3或以后的版本)中。在一些根本沒有鎖定機制的體系中,使用多個Listen指令就是不安全的。

AcceptMutex指令被用來改變在運行時使用的互斥方案。

AcceptMutex flock

  這種方法調用系統函數flock()來鎖定一個加鎖文件(其位置取決于LockFile指令)。
AcceptMutex fcntl

  這種方法調用系統函數fcntl()來鎖定一個加鎖文件(其位置取決于LockFile指令)。
AcceptMutex sysvsem

  (1.3及更新版本)這種方案使用SysV風格的信號燈以實現互斥。不幸的是,SysV風格的信號燈有一些副作用,其一是,Apache有可能不能在結束以前釋放這種信號燈(見ipcs()的man page),另外,這種信號燈API給與網絡服務器有相同uid的CGI提供了拒絕服務攻擊的機會(所有CGI,除非用了類似suexec或cgiwrapper)。鑒于此,在多數體系中都不用這種方法,除了IRIX(因為前兩種方法在IRIX中代價太高)。
AcceptMutex pthread

  (1.3 及更新版本)這種方法使用了POSIX互斥,按理應該可以用于所有完整實現了POSIX線程規范的體系中,但是似乎只能用在Solaris2.5及更新版本中,甚至只能在某種配置下才正常運作。如果遇到這種情況,則應該提防服務器的掛起和失去響應。只提供靜態內容的服務器可能不受影響。
AcceptMutex posixsem

  (2.0及更新版本)這種方法使用了POSIX信號燈。如果一個運行中的線程占有了互斥segfault ,則信號燈的所有者將不會被恢復,從而導致服務器的掛起和失去響應。

如果你的系統提供了上述方法以外的串行機制,那就可能需要為APR增加代碼(或者提交一個補丁給Apache)。

還有一種曾經考慮過但從未予以實施的方案是使循環部分地串行化,即只允許一定數量的進程進入循環。這種方法僅在多個進程可以同時進行的多處理器的系統中才是有價值的,而且這樣的串行方法并沒有占用整個帶寬。它也許是將來研究的一個領域,但是由于高度并行的網絡服務器并不符合規范,所以其被優先考慮的程度會比較低。

當然,為了得到最佳性能,最后就根本不使用多個Listen語句。但是上述內容還是值得讀一讀。
單socket情況下的串行accept

上述對多socket的服務器進行了一流的講述,那么對單socket的服務器又怎樣呢?理論上似乎應該沒有什么問題,因為所有進程在連接到來的時候可以由accept()阻塞,而不會產生進程"饑餓"的問題,但是在實際應用中,它掩蓋了與上述非阻塞方案幾乎相同的問題。按大多數TCP棧的實現方法,在單個連接到來時,內核實際上喚醒了所有阻塞在accept的進程,但只有一個能得到此連接并返回到用戶空間,而其余的由于得不到連接而在內核中處于休眠狀態。這種休眠狀態為代碼所掩蓋,但的確存在,并產生與多socket中采用非阻塞方案相同的負載尖峰的浪費。

同時,我們發現在許多體系結構中,即使在單socket的情況下,實施串行化的效果也不錯,因此在幾乎所有的情況下,事實上就都這樣處理了。在Linux (2.0.30,雙Pentium pro 166/128M RAM)下的測試顯示,對單socket,串行化比不串行化每秒鐘可以處理的請求少了不到3%,但是,不串行化對每一個請求多了額外的100ms的延遲,此延遲可能是因為長距離的網絡線路所致,并且僅發生在LAN中。如果需要改變對單socket的串行化,可以定義SINGLE_LISTEN_UNSERIALIZED_ACCEPT ,使單socket的服務器徹底放棄串行化。
延遲的關閉

正如draft-ietf-http-connection-00.txt section 8所述,HTTP服務器為了可靠地實現此協議,需要單獨地在每個方向上關閉通訊(重申一下,一個TCP連接是雙向的,兩個方向之間是獨立的)。在這一點上,其他服務器經常敷衍了事,但從1.2版本開始被Apache正確實現了。

但是增加了此功能以后,由于一些Unix版本的短見,隨之也出現了許多問題。TCP規范并沒有規定FIN_WAIT_2必須有一個超時,但也沒有明確禁止。在沒有超時的系統中,Apache1.2經常會陷于FIN_WAIT_2狀態中。多數情況下,這個問題可以用供應商提供的TCP/IP補丁予以解決。而如果供應商不提供補丁(指SunOS4 -- 盡管用戶們持有允許自己修補代碼的許可證),那么只能關閉此功能。

實現的方法有兩種,其一是socket選項SO_LINGER ,但是似乎命中注定,大多數TCP/IP棧都從未予以正確實現。即使在正確實現的棧中(指Linux2.0.31),此方法也被證明其代價比下一種方法高昂。

Apache對此的實現代碼大多位于函數lingering_close(位于http_main.c)中。此函數大致形如:

void lingering_close (int s)
{
char junk_buffer[2048];

/* shutdown the sending side */
shutdown (s, 1);

signal (SIGALRM, lingering_death);
alarm (30);

for (;;) {
select (s for reading, 2 second timeout);
if (error) break;
if (s is ready for reading) {
if (read (s, junk_buffer, sizeof (junk_buffer)) = 0) {
break;
}
/* just toss away whatever is here */
}
}

close (s);
}

此代碼在連接結束時多了一些開銷,但這是可靠實現所必須的。由于HTTP/1.1越來越流行,而且所有連接都是穩定的,此開銷將由更多的請求共同分擔。如果你要玩火去關閉這個功能,可以定義NO_LINGCLOSE ,但絕不推薦這樣做。尤其是,隨著HTTP/1.1中管道化穩定連接的啟用,lingering_close已經成為絕對必須。而且,管道化連接速度更快,應該考慮予以支持。
Scoreboard 文件

Apache父進程和子進程通過scoreboard進行通訊。通過共享內存來實現當然是最理想的。在我們曾經實踐過或者提供了完整移植的操作系統中,都使用共享內存,其余的則使用磁盤文件。磁盤文件不僅速度慢,而且不可靠(功能也少)。仔細閱讀你的體系所對應的src/main/conf.h文件,并查找USE_MMAP_SCOREBOARD或USE_SHMGET_SCOREBOARD 。定義其中之一(或者分別類似HAVE_MMAP和HAVE_SHMGET),可以使共享內容的相關代碼生效。如果你的系統提供其他類型的共享內容,則需要修改src/main/http_main.c文件,并把必需的掛鉤添加到服務器中。(也請發送一個補丁給我們)
注意:在對Linux的Apache1.2移植版本之前,沒有使用內存共享,此失誤使Apache的早期版本在Linux中表現很差。
DYNAMIC_MODULE_LIMIT

如果你不想使用動態加載模塊(或者是因為看見了這段話,或者是為了獲得最后一點點性能上的提高),可以在編譯服務器時定義 -DDYNAMIC_MODULE_LIMIT=0 ,這樣可以節省為支持動態加載模塊而分配的內存。
top
附錄:蹤跡的詳細分析

在Solaris8的MPM中,Apache2.0.38使用一個系統調用以收集蹤跡:

truss -l -p httpd_child_pid.

-l 參數使truss記錄每個執行系統調用的LWP(lightweight process--Solaris核心級線程)的ID。

其他系統可能使用不同的系統調用追蹤工具,諸如strace, ktrace, par ,其輸出都是相似的。

下例中,一個客戶端向httpd請求了一個10KB的靜態文件。對非靜態或內容協商請求的記錄會有很大不同(有時也很難看明白)。

/67:   accept(3, 0x00200BEC, 0x00200C0C, 1) (sleeping...)
/67:   accept(3, 0x00200BEC, 0x00200C0C, 1)         = 9

下例中,****線程是 LWP #67 。
注意對accept()串行化支持的匱乏。與這個特殊平臺對應的MPM在默認情況下使用非串行的accept ,除了在****多個端口的時候。

/65:   lwp_park(0x00000000, 0)                 = 0
/67:   lwp_unpark(65, 1)                     = 0

接受了一個連接后,****線程喚醒一個工作線程以處理此請求。下例中,處理請求的那個工作線程是 LWP #65 。

/65:   getsockname(9, 0x00200BA4, 0x00200BC4, 1)     = 0

為了實現虛擬主機,Apache需要知道接受連接的本地socket地址。在許多情況下,有可能無須執行此調用(比如沒有虛擬主機,或者Listen指令中沒有使用通配地址),但是目前并沒有對此作優化處理。

/65:   brk(0x002170E8)                       = 0
/65:   brk(0x002190E8)                       = 0

此brk()調用是從堆中分配內存的,它在系統調用記錄中并不多見,因為httpd在多數請求處理中使用了自己的內存分配器(apr_pool和apr_bucket_alloc)。下例中,httpd剛剛啟動,所以它必須調用malloc()以分配原始內存塊用于自己的內存分配器。

/65:   fcntl(9, F_GETFL, 0x00000000)             = 2
/65:   fstat64(9, 0xFAF7B818)                 = 0
/65:   getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B910, 2190656) = 0
/65:   fstat64(9, 0xFAF7B818)                 = 0
/65:   getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B914, 2190656) = 0
/65:   setsockopt(9, 65535, 8192, 0xFAF7B918, 4, 2190656) = 0
/65:   fcntl(9, F_SETFL, 0x00000082)             = 0

接著,工作線程使客戶端連接處于非阻塞模式。setsockopt()和getsockopt()調用是Solaris的libc對socket執行fcntl()所必須的。

/65:   read(9, " G E T   / 1 0 k . h t m".., 8000)   = 97

工作線程從客戶端讀取請求。

/65:   stat("/var/httpd/apache/httpd-8999/htdocs/10k.html", 0xFAF7B978) = 0
/65:   open("/var/httpd/apache/httpd-8999/htdocs/10k.html", O_RDONLY) = 10

這里,httpd被配置為"Options FollowSymLinks"和"AllowOverride None"。所以,無須對每個被請求文件路徑中的目錄執行lstat(),也不需要檢查.htaccess文件,它簡單地調用stat()以檢查此文件是否存在,以及是一個普通的文件還是一個目錄。

/65:   sendfilev(0, 9, 0x00200F90, 2, 0xFAF7B53C)     = 10269

此例中,httpd可以通過單個系統調用sendfilev()發送HTTP響應頭和被請求的文件。Sendfile因操作系統會有所不同,有些系統中,在調用sendfile()以前,需要調用write()或writev()以發送響應頭。

/65:   write(4, " 1 2 7 . 0 . 0 . 1   - ".., 78)     = 78

此write()調用在訪問日志中對請求作了記錄。注意,其中沒有對time()的調用的記錄。與Apache1.3不同,Apache2.0使用gettimeofday()以查詢時間。在有些操作系統中,比如Linux和Solaris,gettimeofday有一個優化的版本,其開銷比一個普通的系統調用要小一點。

/65:   shutdown(9, 1, 1)                     = 0
/65:   poll(0xFAF7B980, 1, 2000)               = 1
/65:   read(9, 0xFAF7BC20, 512)                 = 0
/65:   close(9)                           = 0

工作線程對連接作延遲的關閉。

/65:   close(10)                           = 0
/65:   lwp_park(0x00000000, 0)       (sleeping...)

最后,工作線程關閉發送完的文件和塊,直到****進程把它指派給另一個連接。

/67:   accept(3, 0x001FEB74, 0x001FEB94, 1) (sleeping...)

其間,****進程可以在把一個連接指派給一個工作進程后立即接受另一個連接(但是如果所有工作進程都處于忙碌狀態,則會受MPM中的一些溢出控制邏輯的制約)。雖然在此例中并不明顯,在工作線程剛接受了一個連接之后,下一個accept()會(在高負荷的情況下更會)立即并行產生。

標簽:十堰 人事邀約 漳州 邵陽 企業管理 泰安 甘孜 撫順

巨人網絡通訊聲明:本文標題《APACHE性能方面的提示》,本文關鍵詞  APACHE,性能,方面的,方,面的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《APACHE性能方面的提示》相關的同類信息!
  • 本頁收集關于APACHE性能方面的提示的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 上海申克机械有限公司| 富华重工有限公司老板| 东莞市台克机械有限公司| 无锡裕力机械有限公司| 上海沪临重工有限公司| 济南市恒宇机械有限公司| 上海机械成套设备有限公司| 杭州双龙机械有限公司| 汉中燕航精工机械有限公司| 山东华伟重工机械有限公司| 徐州中嘉工程机械有限公司| 力 机械 有限公司| 海宁纺织机械有限公司| 河北神耕机械有限公司| 济南欧亚德数控机械有限公司| 扬州液压机械有限公司| 葛洲坝能源重工有限公司| 浙江超伟机械有限公司| 上海雄风起重设备厂有限公司| 河南胜飞石油机械有限公司| 荃胜精密机械有限公司| 蚌埠 机械有限公司| 石家庄工程机械有限公司| 厦门众达钢铁有限公司| 诸城市万兴机械有限公司| 上海岭申机械有限公司| 河南省矿山起重机制造有限公司 | 温州机械制造有限公司| 苏州传动机械有限公司| 台林机械有限公司 -| 上海华迪机械有限公司| 诸城市天顺机械有限公司| 昆山大风机械有限公司| 上海神威机械有限公司| 朗威电子机械有限公司| 江苏申特钢铁有限公司| 河北永洋钢铁有限公司| 上海景林包装机械有限公司| 昆山崇粲机械有限公司| 铜陵市富鑫钢铁有限公司| 山东三牛机械有限公司| 山东起重机有限公司| 河北联港废钢铁回收有限公司| 徐州天地重型机械制造有限公司 | 江苏苏东化工机械有限公司| 中核天津机械有限公司| 晋工机械有限公司官网| 唐山国义特种钢铁有限公司| 徐州二川机械有限公司| 潍坊浩泰机械有限公司| 天津精密机械有限公司| 涿州北方重工设备设计有限公司 | 济南金迈达机械有限公司| 东莞市瑞沧机械设备有限公司 | 上海展仕机械设备有限公司| 常州朝康机械有限公司| 装饰工程有限公司起名| 上海容安木工机械设备有限公司| 苏州德伊捷自动化机械有限公司| 濮阳崛起装饰有限公司| 盐城三益石化机械有限公司| 万杰食品机械有限公司| 济宁天鸿机械有限公司| 湖南博长钢铁贸易有限公司| 洛阳精密机械有限公司| 滕州市美力机械有限公司| 东莞市鼎祥通用机械设备有限公司 | 玉环机械制造有限公司| 在天精密机械有限公司| 鹤壁市豫星机械制造有限公司| 天津钢铁贸易有限公司| 江苏大圣机械制造有限公司| 河北晓进机械制造有限公司| 广东佳明重工有限公司| 常州汉森机械有限公司| 昆成机械机械有限公司| 精密机械设备有限公司| 同安木工机械有限公司| 苏州威邦自动化机械有限公司| 东莞市鸿铭机械有限公司| 青岛堡鑫机械有限公司| 杭州山虎机械有限公司| 安徽涌诚机械有限公司| 石化机械制造有限公司| 上海浩勇精密机械有限公司| 亨内基机械上海有限公司| 广西清隆机械制造有限公司| 徐工重型机械有限公司| 石家庄机械有限公司| 永兴机械设备有限公司| 东风井关农业机械有限公司| 装饰工程有限公司起名| 西安市机械有限公司| 临清 机械有限公司| 中安重工自动化装备有限公司| 曲靖呈钢铁有限公司| 保定金地机械有限公司| 烟台金元矿业机械有限公司| 山东济宁机械有限公司| 旭英机械有限公司招聘| 浙江三叶机械有限公司| 东莞市大机械有限公司| 厦门天一精密机械有限公司| 杭州起重吊装有限公司| 江阴起重机械有限公司| 志高精密机械有限公司| 郑州世纪精信机械制造有限公司| 云南机械设备有限公司| 扬州正大机械有限公司| 无锡新麦机械有限公司| 常州杰洋精密机械有限公司 | 河北航天振邦精密机械有限公司 | 上海盟申机械设备有限公司| 诸城市美川机械有限公司| 上海铁美机械有限公司| 常熟 机械 有限公司| 南京嘉诚机械有限公司| 杭州神钢建设机械有限公司| 常州宏机械有限公司| 新乡黄氏食品机械有限公司| 沈阳顺达重矿机械制造有限公司 | 昆山市烽禾升精密机械有限公司 | 中马园林机械有限公司| 四川蓝星机械有限公司| 石家庄三一众力工程机械有限公司| 杭州铁正机械有限公司| 东莞英豪机械有限公司| 唐山市钢铁有限公司| 杭州雅顿过滤机械有限公司| 新乡市振英机械设备有限公司 | 深圳市高士达精密机械有限公司| 扬州冶金机械有限公司| 广州 机械 有限公司| 菲特压片机械有限公司| 唐山丰润区钢铁有限公司| 亨内基机械上海有限公司 | 林氏玻璃机械有限公司| 上海冠龙阀门机械有限公司 | 小松工程机械有限公司| 成都 精密机械有限公司| 济南速雕数控机械有限公司| 滨州 机械 有限公司| 浙江仁工机械有限公司| 青州市三联重工设备制造有限公司 | 瑞达机械设备有限公司| 扬州 机械设备 有限公司| 南海力丰机械有限公司| 泰安机械有限公司招聘| 上海乾承机械设备有限公司| 佛山丰又丰机械有限公司| 重庆龙文机械设备有限公司| 佛山市陶瓷机械有限公司| 舒勒锻压机械有限公司| 上海 包装机械 有限公司| 江苏江佳机械有限公司| 上海江埔印刷机械有限公司 | 东莞市力华机械设备有限公司 | 宁波博大机械有限公司| 重庆双腾机械制造有限公司| 日照机械制造有限公司| 友池精密机械有限公司| 东营石油机械有限公司| 常州恒力机械有限公司| 苏州华致鑫精密机械有限公司| 江苏天宇机械有限公司| 山东海宏重工有限公司| 广州机械有限公司招聘| 河南龙工机械制造有限公司| 日照兴业机械有限公司| 蚌埠液力机械有限公司| 鄂州吴城钢铁有限公司| 河南 工程机械有限公司| 洛阳福格森机械装备有限公司| 江苏 重型机械有限公司| 郑州水工机械有限公司| 浙江麒龙起重机械有限公司| 常熟机械制造有限公司| 成都望锦机械有限公司| 邢台 机械有限公司| 海之力机械有限公司| 徐州智茸工程机械有限公司| 昆成机械(昆山)有限公司| 江苏常动机械有限公司| 江苏柯恒石化电力机械有限公司 | 潍坊圣旋机械有限公司| 苏州海盛精密机械有限公司怎么样| 上海建冶重工机械有限公司| 河南铁山起重设备有限公司| 合肥逸飞包装机械有限公司| 张家口机械有限公司| 天津天重江天重工有限公司| 首钢长白机械有限公司| 德枫丹 青岛 机械有限公司招聘| 上海成套机械有限公司| 无锡精密机械有限公司| 扬州凯勒机械有限公司| 浙江起步儿童用品有限公司| 河南省浩业矿山机械有限公司| 佛山市宝索机械制造有限公司| 宁波安德机械有限公司| 上海起重电机厂有限公司| 柳州市超凌顺机械制造有限公司| 福建三宝钢铁有限公司| 南方路面机械有限公司| 长沙起重机厂有限公司| 常州赛瑞克包装机械有限公司| 浙江雷克机械工业有限公司| 昆成机械(昆山)有限公司| 昆山之富士机械制造有限公司 | 广东力丰机械有限公司| 广州市德晟机械有限公司| 重庆舰帏机械有限公司| 上海美捷伦包装机械有限公司| 爱立许机械有限公司| 石嘴山钢铁有限公司| 新乡市长城机械制造有限公司| 山东莱芜煤矿机械有限公司| 力源液压机械有限公司| 邢台机械制造有限公司| 浙江四和机械有限公司| 华威焊割机械有限公司| 扬州永瑞机械有限公司| 宏力机械设备有限公司| 东莞市世翔精密机械制造有限公司| 山东腾机械有限公司| 上海鼎龙机械有限公司| 金纬机械常州有限公司| 临沂三友重工有限公司| 东莞高恩机械有限公司| 浙江人和机械有限公司| 浙江昌亨机械有限公司| 江苏飞耀机械制造有限公司| 山东良鑫机械有限公司| 济南大鹏机械设备有限公司| 海宁诚达机械有限公司| 山东瑞华工程机械有限公司| 佛山市洪峰机械有限公司| 铁建重工包头有限公司| 上海西马特制药机械有限公司 | 无锡双益精密机械有限公司| 上海冠龙阀门机械有限公司官网| 浙江康明斯机械有限公司| 鸡西煤矿机械有限公司| 兴澄特种钢铁有限公司| 广东巨风机械制造有限公司 | 南通科诚橡塑机械有限公司| 武汉创联机械有限公司| 河南双象机械有限公司| 上海嘉迪机械有限公司| 上海机械设备有限公司| 四川兴明泰机械有限公司| 抚顺新钢铁有限公司| 上海二和机械有限公司| 山东银鹰炊事机械有限公司| 深圳恒盛力包装机械有限公司 | 新疆丰泰钢铁有限公司| 天津市天重江天重工有限公司| 盐城 机械有限公司| 无锡东晨机械有限公司| 南阳奇丰机械有限公司| 大连起重矿山机械有限公司 | 湖北华伟石化机械设备制造有限公司 | 上海美捷伦包装机械有限公司| 佛山市洪峰机械有限公司| 武汉中轻机械有限公司| 浙江炜冈机械有限公司| 爱克苏州机械有限公司| 江苏苏力机械有限公司| 上海昶旭包装机械有限公司| 济南天助升降机械有限公司| 江苏常动机械有限公司| 杭州千和精密机械有限公司 | 京山 机械有限公司| 机械密封件有限公司| 济南 机械有限公司| 安丘瑞源机械制造有限公司| 广州嘉银机械有限公司| 奥通机械制造有限公司| 郑州鼎盛机械设备有限公司| 广西 机械 有限公司| 广州市科展机械设备有限公司 | 江阴市勤业化工机械有限公司 | 飞虎机械制造有限公司| 重庆旺田机械有限公司| 湖北江重机械制造有限公司| 南通安港机械有限公司| 南京康尼精密机械有限公司| 上海传动机械有限公司| 唐山东方钢铁有限公司| 广东达诚机械有限公司| 河北敬业钢铁有限公司| 郑州谷丰机械设备有限公司| 广州泓锋食品机械有限公司| 金丰机械工业有限公司| 东莞市科机械有限公司| 东莞市茂丰机械有限公司| 宁波联成机械有限公司| 苏州起重机械有限公司| 仙游东亚机械有限公司| 奥通机械制造有限公司| 江苏包装机械有限公司| 无锡沃利数控机械有限公司| 杭州岛文机械有限公司| 广州市旭朗机械设备有限公司 | 南京华创包装机械设备有限公司 | 苏州精创机械有限公司| 同向精密机械有限公司| 广州永胜钢铁制品有限公司| 常州 重工有限公司| 茂名重力石化机械制造有限公司| 合肥盛安机械有限公司| 廊坊百冠包装机械有限公司 | 友池精密机械有限公司| 大连液力机械有限公司| 安徽国梁机械设备有限公司 | 郑州升升机械有限公司| 洛北重工机械有限公司| 冶金机械制造有限公司| 潍坊凯隆机械有限公司| 大连 机械制造有限公司| 上海 包装机械有限公司| 阳煤化机械有限公司| 佛山市劲雄机械有限公司| 温岭市大众精密机械有限公司| 伟业机械制造有限公司| 永华机械有限公司招聘| 洛阳天宇机械制造有限公司| 卓郎纺织机械有限公司| 东莞机械设备有限公司| 常州久压久机械制造有限公司| 德国arku机械制造有限公司| 浙江威泰机械有限公司| 鹰起重机械有限公司| 浙江兴发机械有限公司| 宁波健信机械有限公司| 聊城 机械有限公司| 上海世达机械工具厂有限公司 | 江苏腾通包装机械有限公司| 丹阳龙江钢铁有限公司| 广州南头机械有限公司| 潍坊川泰机械有限公司| 济南金梭机械制造有限公司| 大连盘起工业有限公司| 辽宁三君机械有限公司| 广州华运机械有限公司| 柳州富达机械有限公司官网| 上海机械施工有限公司| 鹤壁万丰矿山机械制造有限公司| 福建敏捷机械有限公司| 佛山市南海鼎工包装机械有限公司 | 大连鸿升机械有限公司| 东营石油机械有限公司| 河南兴远起重机有限公司| 廊坊机械制造有限公司| 广州万举机械有限公司| 上海本优机械有限公司| 东莞宝科机械有限公司| 飞扬机械制造有限公司| 华德机械制造有限公司| 东莞仕能机械设备有限公司| 盐城机械制造有限公司| 江苏登福机械有限公司| 常州市丰丰机械有限公司| 山东良鑫机械有限公司| 无锡工程机械有限公司| 四川诚德机械有限公司| 佛山市创宝包装机械有限公司| 佳木斯农业机械有限公司| 上海曼亿包装机械有限公司| 山东银鹰炊事机械有限公司| 浙江佳成机械有限公司| 万兹莱压缩机械(上海)有限公司| 上海威士机械有限公司| 江西鑫通机械有限公司| 伊之密机械有限公司| 北京市机械施工有限公司| 山东源鑫农牧机械有限公司| 南京寿旺机械设备有限公司| 青岛德维机械制造有限公司| 扬州精密机械有限公司| 江苏迪迈机械有限公司| 宏力机械设备有限公司| 石油机械制造有限公司| 合肥包装机械有限公司| 玛连尼 法亚机械有限公司| 南京一嘉起重机械制造有限公司| 苏州久富农业机械有限公司| 河北神耕机械有限公司| 南通昭和机械有限公司| 河钢钢铁贸易有限公司| 湖南星邦重工有限公司| 浙江万通重工有限公司| 上海映易包装机械设备有限公司 | 南京利晨机械有限公司| 液压机械制造有限公司| 河南省化工机械制造有限公司| 宁波延晟机械有限公司| 诸城市华钢机械有限公司| 四川依赛特机械制造有限公司 | 德实机械平湖有限公司| 广州起重机械有限公司| 山东嘉意机械有限公司| 青岛海诺机械制造有限公司| 江苏聚丰园林机械有限公司| 郑州锦德润机械设备有限公司| 南京海威机械有限公司| 山东西王钢铁有限公司| 河南双象机械有限公司| 扬州正大机械有限公司| 常州市锦益机械有限公司| 广西机械制造有限公司| 永达机械制造有限公司| 浙江上石化机械有限公司| 常熟神马机械有限公司| 深圳创能机械有限公司| 杭州群起建材有限公司| 邹平县宏鑫机械制造有限公司| 青岛农业机械有限公司| 天津金岸重工有限公司| 唐山国义特种钢铁有限公司| 浙江精密机械有限公司| 温州精宇机械有限公司| 上海捷赛机械有限公司| 宁波鑫淼机械有限公司| 佛山市柯田包装机械有限公司| 杭州天杨机械有限公司| 上海宏铭纺织机械有限公司| 唐山印刷机械有限公司| 广西玉柴重工有限公司| 东莞市凯奥机械有限公司| 山东鑫弘重工有限公司| 浙江炬达机械有限公司| 台正精密机械有限公司| 济南达润机械有限公司| 湖州卓信机械有限公司| 武汉千里马工程机械有限公司| 杭州中力机械设备有限公司| 浙江万通重工有限公司| 河南铁山起重设备有限公司| 诸城隆泽机械有限公司| 渤海重工管道有限公司| 晋城福盛钢铁有限公司| 东莞市千岛机械制造有限公司| 天津文洲机械有限公司| 河北安丰钢铁有限公司| 无锡械锐机械有限公司| 杭州 机械有限公司| 机械自动化有限公司| 山东九环石油机械有限公司| 青岛华雷重工设备有限公司| 上海亚华印刷机械有限公司| 章丘市宇龙机械有限公司| 苏州联佳精密机械有限公司| 大连鸿升机械有限公司| 青岛联瑞精密机械有限公司 | 东远机械昆山有限公司| 新乡天丰机械有限公司| 泉州精镁机械有限公司| 张家港机械制造有限公司| 上海敏杰机械有限公司| 船舶机械制造有限公司| 湖南天雁机械责任有限公司| 东莞兆泰机械设备有限公司| 湖南中一惠龙机械设备有限公司| 安徽大洋机械有限公司| 南通宝钢钢铁有限公司| 天津金岸重工有限公司| 江苏恒械机械有限公司| 青州市远航机械设备有限公司| 青岛华雷重工设备有限公司| 唐山市神州机械有限公司| 广东烨辉钢铁有限公司| 恒天九五重工有限公司| 湖北 机械 有限公司| 济宁新田工程机械有限公司| 意达纺织机械有限公司| 烟台石油机械有限公司| 东莞正扬电子机械有限公司| 光大机械厂有限公司| 亨沃机械设备有限公司| 仕诚塑料机械有限公司| 深圳市硕方精密机械有限公司 | 济南帕特机械有限公司| 上海三久机械有限公司| 浙江包装机械有限公司| 中山松德印刷机械有限公司| 柳溪机械设备有限公司| 宁波五峰机械有限公司| 常德纺织机械有限公司| 聊城 机械 有限公司| 湖南金牛重工机械有限公司| 河南朝阳钢铁有限公司| 广东省建筑工程机械施工有限公司 | 东莞市比奥机械有限公司| 捷泰克机械有限公司| 青岛奥硕数控机械有限公司| 广西五丰机械有限公司| 济南钢铁贸易有限公司| 苏州华致鑫精密机械有限公司| 摩德娜机械有限公司| 江苏宏程重工有限公司| 常熟 机械 有限公司| 徐州迈特机械有限公司| 阿尔法起重机有限公司| 江阴市江南轻工机械有限公司| 九江萍钢钢铁有限公司电话| 宝 重工机械有限公司| 西安鸿运机械有限公司| 洛阳机械设备有限公司| 河南矿山起重机有限公司地址| 郑州未来机械制造有限公司| 浙江天鸿传动机械有限公司| 广州宏兴食品机械有限公司| 湖北仙粮机械有限公司| 郑州机械制造有限公司| 山东明美数控机械有限公司| 宁波翠科机械有限公司| 嵩县煜嵩机械有限公司| 南通图海机械有限公司| 常州华威起重工具有限公司| 徐州东岳工程机械有限公司| 张家港市港达机械有限公司| 合肥成龙钢铁有限公司| 中海福陆重工有限公司| 东平开元机械有限公司| 五莲县机械有限公司| 安阳三一机械有限公司| 东莞包装机械有限公司| 东莞市峰茂机械设备有限公司 | 洛阳重型机械有限公司| 东莞市鸿企机械有限公司| 山东硕诚机械有限公司| 广东恒联食品机械有限公司售后| 泰上机械设备有限公司| 郑州市机械有限公司| 南京斯坦福机械有限公司| 无锡传动机械有限公司| 徐州明文机械有限公司| 东莞市源机械有限公司| 江苏常动机械有限公司| 沈阳机械制造有限公司| 江苏百德机械有限公司| 常州市丰丰机械有限公司| 无锡力恩机械有限公司| 龙扬机械)有限公司| 上海美捷伦包装机械有限公司 | 华天机械制造有限公司| 成都蓉诚机械设备有限公司| 台湾鸿昌机械有限公司| 如皋市通达机械制造有限公司| 广东明华机械有限公司| 上海山美重型矿山机械有限公司| 青岛武船重工有限公司| 西安普阳机械有限公司| 山东国丰机械有限公司| 苏州立注机械有限公司| 厦门 机械设备有限公司| 山东白龙机械有限公司| 上海舒平精工机械有限公司| 东方机械制造有限公司| 上海环球机械有限公司| 东莞市台克机械有限公司| 青州矿砂机械有限公司| 厦门宇龙机械有限公司| 武汉四方圆机械设备有限公司 | 苏州圣亚精密机械有限公司| 河北食品机械有限公司| 友嘉精密机械有限公司| 济南新思路机械设备有限公司| 福建群峰机械有限公司| 上海恒启机械设备有限公司| 安徽宏远机械制造有限公司 | 广东华三行工程机械有限公司| 鞍山机械设备有限公司| 唐山鑫达钢铁有限公司| 重庆洲泽机械制造有限公司| 宁波瑞基机械有限公司| 杭州兴达机械有限公司| 河南华北起重吊钩有限公司| 湖南威士重工机械有限公司| 安徽柳工起重机有限公司| 福建巨霸机械有限公司| 广东荣钢钢铁有限公司| 唐山唐钢钢铁有限公司| 洛阳大华重型机械有限公司| 宁波敏达机械有限公司| 长沙旭众机械设备有限公司| 潍坊中迪机械有限公司| 江阴市化工机械有限公司| 国发重工机械有限公司| 新乡黄氏食品机械有限公司| 浙江永达输送机械设备有限公司| 山东莱州机械有限公司| 夹江水工机械有限公司| 江苏瑞德机械有限公司| 上海美捷伦包装机械有限公司| 佛山市顺德区金工铝门窗机械实业有限公司 | 江苏长虹涂装机械有限公司| 泰州机械设备有限公司| 山东机械设备有限公司| 徐州华冶机械有限公司| 济南业兴通工程机械有限公司| 厦门 机械有限公司| 群峰机械制造有限公司| 广州东昇机械有限公司| 山东瑞浩重型机械有限公司| 河北犀牛民用机械有限公司| 江阴市药化机械有限公司| 南京科倍隆机械有限公司| 上海亚遥工程机械有限公司| 上海奕晟矿山机械有限公司| 安徽宇华机械制造有限公司 | 潍坊钰兴机械有限公司| 东台富康机械有限公司| 江苏隆达机械设备有限公司| 邢台 机械有限公司| 郑州机械设备有限公司| 中核机械天津有限公司| 辛集澳森钢铁有限公司| 山东造纸机械厂有限公司| 佛山市科鹰机械有限公司| 山东临工工程机械有限公司招聘| 山西 机械有限公司| 武汉食品机械有限公司| 山东日发纺织机械有限公司| 常州汉森机械有限公司| 济南金胜星机械设备有限公司| 东莞麒麟机械有限公司| 杭州通产机械有限公司| 湖州卓信机械有限公司| 江阴韩一钢铁有限公司| 上海毅锴机械有限公司| 盐城三益石化机械有限公司| 广州市善友机械设备有限公司| 青岛安成食品机械有限公司| 上海松精机械制造有限公司| 辽宁三君工程机械有限公司| 安徽格瑞德机械制造有限公司 | 山东利丰机械有限公司| 博硕机械制造有限公司| 南通国盛精密机械有限公司| 唐山宝泰钢铁有限公司| 浙江金驰机械有限公司| 诺尔起重设备有限公司| 台州欧玮机械有限公司| 福建巨霸机械有限公司| 河北德林机械有限公司| 武汉萱裕机械有限公司| 无锡诺亚机械有限公司| 上海京悦机械有限公司| 海益机械配件有限公司| 吉林吉钢钢铁有限公司| 遂宁华能机械有限公司| 湖南星邦重工有限公司| 浙江德迈机械有限公司| 上海机械制造有限公司| 源鸿机械制造有限公司| 无锡橡塑机械有限公司| 浙江纺织机械有限公司| 新乡市中轻机械有限公司| 湖南威士重工机械有限公司| 江阴兴澄特种钢铁有限公司地址 | 苏州三维精密机械有限公司| 山东万力起重机械有限公司| 浙江昌亨机械有限公司| 太原通泽重工有限公司| 淄博捷达机械有限公司| 佛山市恒力泰机械有限公司| 京山 机械有限公司| 恒江机械制造有限公司| 玉环机械制造有限公司| 江阴 起重机械有限公司| 上海 机械有限公司| 河南奥创机械设备有限公司| 晶元精密机械有限公司| 骁马机械上海有限公司| 山东造纸机械厂有限公司| 通力机械制造有限公司| 福建东亚机械有限公司| 昆山市机械制造有限公司| 机械设备有限公司官网| 安徽 机械制造有限公司| 重庆川普机械有限公司| 浙江西子重工机械有限公司| 桂林中天机械有限公司| 宁波塑料机械有限公司| 上海德机械设备有限公司| 深圳恒盛力包装机械有限公司| 邢台远大机械制造有限公司| 江阴精力机械有限公司| 天津机械设备有限公司| 湖南工程机械有限公司| 宁波中能连通机械有限公司| 金凯达机械有限公司| 上海松井机械有限公司| 淄博协丰机械有限公司| 上海澳昊机械制造有限公司| 东莞英豪机械有限公司| 招远市矿山机械有限公司| 瀚乐电子机械有限公司| 东平开元机械有限公司| 石家庄嘉祥精密机械有限公司| 青岛重工机械有限公司| 宁波天竺工程机械有限公司| 浙江赛峰机械有限公司| 马长江钢铁有限公司| 渭南金狮机械有限公司| 宁波金记机械有限公司| 江苏东邦机械有限公司| 亿煤机械装备制造有限公司| 德蒙压缩机械有限公司| 广州市赛思达机械设备有限公司| 苏州 机械 有限公司| 广州市德晟机械有限公司 | 浙江亿鹏机械有限公司| 哈尔滨纳诺机械设备有限公司 | 德蒙压缩机械有限公司| 天津文洲机械有限公司| 宁波钢铁有限公司电话| 武汉中粮机械有限公司| 机械化施工有限公司| 上海德珂斯机械自动化技术有限公司| 漳州南方机械有限公司| 上海纺织机械有限公司| 浙江富龙钢铁有限公司| 华信陶瓷机械有限公司| 建材有限公司起名大全| 山东巨威机械有限公司| 镇江机械制造有限公司| 贵州力顺机械有限公司| 三川德青工程机械有限公司| 上海鑫越包装机械有限公司 | 青岛华牧机械有限公司| 云南机械制造有限公司| 郑州双狮粮油机械有限公司| 三一重工昆山有限公司| 济南天宝钢铁有限公司| 山东明威起重设备有限公司| 玉环博机械有限公司| 苏州神峰起重机械有限公司 | 邢台市振成机械有限公司| 广东光信机械有限公司| 深圳印刷机械有限公司| 诸城市美川机械有限公司 | 爱科农业机械有限公司| 宁波市鸿博机械制造有限公司| 东莞大同机械有限公司| 招远矿山机械有限公司| 江苏宏达起重电机有限公司| 葛洲坝能源重工有限公司| 上海先德机械工程有限公司 | 上海紫永机械有限公司| 桂林恒达矿山机械有限公司| 青岛弗林斯曼机械制造有限公司 | 上海起发实验试剂有限公司| 沈阳六合机械有限公司| 广东力丰机械制造有限公司| 江阴市江南轻工机械有限公司| 天津精密机械有限公司| 湖南金塔机械制造有限公司| 温州光明印刷机械有限公司| 郑州茂祥机械有限公司| 洛阳震动机械有限公司| 东莞市鸿铭机械有限公司| 新美星包装机械有限公司| 无锡鹰普机械有限公司| 成机械设备有限公司| 无锡腾力机械有限公司| 广州众起办公用品有限公司 | 安特苏州精密机械有限公司| 梧州沃华机械有限公司| 佛山恒力泰机械有限公司| 上海创灵包装机械制造有限公司| 山东神力起重机械有限公司| 苏州圣亚精密机械有限公司| 杭州 尔机械有限公司| 江苏环海重工有限公司| 南京润森工程机械有限公司| 泰安东岳重工有限公司| 杭州中亚机械有限公司招聘| 丹阳龙江钢铁有限公司| 东源精密机械有限公司| 德实机械平湖有限公司| 襄阳东昇机械有限公司| 宁波友杰机械有限公司| 河南正亚机械设备制造有限公司 | 无锡纺织机械有限公司| 保定金地机械有限公司| 佛山市三良机械设备有限公司| 河北中浩机械制造有限公司| 山东欧劲工程机械有限公司| 东莞市全永机械制造有限公司 | 湖北襄玉机械有限公司| 电子有限公司起名大全| 杭州中亚机械 有限公司| 常州福牛机械有限公司| 濮阳崛起装饰有限公司| 山东 机械制造有限公司| 青岛美嘉隆包装机械有限公司| 江苏金梧机械有限公司| 杭州西子重工有限公司| 福建群峰机械有限公司| 潍坊二川机械有限公司| 无锡旭辉机械有限公司| 广州起航贸易有限公司| 沈阳重型机械有限公司| 杭州千和精密机械有限公司| 上海楚尚机械有限公司| 基伊埃机械设备天津有限公司| 北京道森起点信息技术有限公司| 山东 纺织机械 有限公司| 上海包装机械有限公司| 浙江新飞机械有限公司| 温州正钻机械有限公司| 济南机械制造有限公司| 上海冠龙阀门机械有限公司官网 | 河北食品机械有限公司| 郑州三和水工机械有限公司| 郑州兆明机械有限公司| 宿迁百通机械有限公司| 德锐尔机械有限公司| 廊坊机械设备有限公司| 山东亚泰机械有限公司| 浙江上易机械有限公司| 白鸽食品机械有限公司| 济南捷迈数控机械有限公司| 欧力特机械有限公司| 宁波工业机械有限公司| 郑州一帆机械设备有限公司| 天翔机械制造有限公司| 上海金纬机械有限公司| 东莞丰堡精密机械有限公司 | 昆山工业机械有限公司| 京华机械设备有限公司| 江苏天宇机械有限公司| 江苏东方重工有限公司| 中海福陆重工有限公司招聘| 青岛青锻锻压机械有限公司| 洛阳泰红农业机械有限公司| 绵阳科睿机械有限公司| 台一精工机械有限公司| 泉州市力达机械有限公司| 常州市佳凯包装机械有限公司| 南京益腾机械制造有限公司| 佛山市机械制造有限公司| 嵊州市机械有限公司| 杭州萧山机械有限公司| 湖南 机械设备有限公司| 绍兴机械制造有限公司| 庆达机械制造有限公司| 青岛工程机械有限公司| 青岛橡胶机械有限公司| 泉州泉盛机械有限公司| 动力机械制造有限公司| 杭州杭达机械有限公司| 山东鲁机械有限公司| 机械设计 有限公司| 威海 机械有限公司| 常州耐强传动机械有限公司| 广东恒联食品机械有限公司售后 | 江苏医疗机械有限公司| 江苏国天锻压机械有限公司 | 烟台市利达木工机械有限公司| 青岛华鑫克斯顿机械有限公司| 广州新浪爱拓化工机械有限公司| 东莞兆泰机械设备有限公司| 苏州苏鹰机械制造有限公司| 济南欧亚德数控机械有限公司| 无锡好麦机械有限公司| 山东福临机械制造有限公司| 济宁恒远机械有限公司| 永盛达机械有限公司| 湖北银轮机械有限公司| 重庆自动化机械有限公司| 辽宁机械制造有限公司| 大连宏大连杆机械制造有限公司 | 山东重型机械有限公司| 山东数控机械有限公司| 天津聚鑫贵泽钢铁贸易有限公司 | 徐州丰展机械有限公司| 苏州三维精密机械有限公司| 河南豫弘重型机械有限公司| 江苏环海重工有限公司| 台州瑞进机械有限公司| 贝力特机械有限公司| 河南千里马工程机械有限公司| 汕头机械设备有限公司| 邢台 机械有限公司| 湖北铁正机械有限公司| 佳木斯佳联收获机械有限公司| 江阴江达机械装备有限公司| 山西贝斯特机械制造有限公司| 上海申德机械有限公司| 武汉吕工机械有限公司| 锋机械设备有限公司| 濮阳市名利石化机械设备制造有限公司 | 曲阜兴运输送机械设备有限公司| 盐城三益石化机械有限公司| 广州甲宝机械有限公司| 恩倍力机械有限公司| 大同机械 有限公司| 工程机械有限公司取名| 上海牛力机械有限公司| 杭州光大机械有限公司| 三门峡化工机械有限公司| 溧阳机械制造有限公司| 吉林省起点医药有限公司| 昆山裕邦机械有限公司| 宝捷精密机械有限公司| 常熟 机械 有限公司| 如东通用机械有限公司| 山东建昌机械有限公司| 大连橡胶塑料机械有限公司| 泰安华伟重工有限公司| 财益机械工业有限公司| 山东神力起重机械有限公司| 成都 精密机械有限公司| 南京三友机械有限公司| 浩胜食品机械有限公司| 中山市包装机械有限公司| 兖州丰业机械有限公司| 上海卓越机械有限公司| 陕西柴油机重工有限公司| 佛山市晶菱玻璃机械有限公司| 扬州凯勒机械有限公司| 苏州机械设备有限公司| 合肥华运机械有限公司| 诸城市博康机械有限公司| 大连液力机械有限公司| 上海铮潼起重机电设备有限公司 | 上海涟恒精密机械有限公司| 淄博 机械设备有限公司| 成都刚毅机械制造有限公司| 常州液压机械有限公司| 深圳市机械有限公司| 佛山市柯田包装机械有限公司 | 大连仁海重工有限公司| 山东曲阜机械有限公司| 河南鼎科机械有限公司| 长江机械设备有限公司| 青州市三联重工设备制造有限公司 | 江苏博森机械制造有限公司| 三菱重工上海有限公司| 东阳机械设备制造有限公司| 杭州青达机械有限公司| 镇江机械设备有限公司| 上海乾享机械设备有限公司| 广州机械设备有限公司| 志庆机械设备有限公司| 新华机械制造有限公司| 无锡传动机械有限公司| 佛山丰堡精密机械有限公司| 广西中源机械有限公司| 台州嘉瑞机械有限公司| 桂林恒达矿山机械有限公司| 成都成邦探矿机械设备有限公司| 江苏正合重工有限公司| 广西南宁机械有限公司| 徐州液压机械制造有限公司| 福州机械制造有限公司| 武汉日晗精密机械有限公司| 柳工常州机械有限公司| 合肥中达机械制造有限公司| 山东翔工机械有限公司| 山东川普机械有限公司| 昌利机械制造有限公司| 江门携成机械有限公司怎样| 杭州德工机械有限公司| 浙江包装机械有限公司| 路通重工机械有限公司| 珠海市机械有限公司| 泰安古河机械有限公司| 上海众星洗涤机械制造有限公司| 机械设备有限公司经营范围| 青岛凯机械有限公司| 湛江恒润机械有限公司| 工程的机械设备有限公司| 宁波星源机械有限公司| 青岛明高机械有限公司| 泰安重工机械有限公司| 扬州精辉试验机械有限公司| 上海华迪机械有限公司| 宝鸡忠诚制药机械有限公司| 天津机械设备有限公司| 上海杰伟机械制造有限公司| 美卓造纸机械有限公司| 洛阳易高机械有限公司| 西安金力特机械设备有限公司| 长江机械设备有限公司| 合肥光裕机械有限公司| 安徽中科光电色选机械有限公司| 浙江勇力机械有限公司| 常州玫尔机械有限公司| 江苏古川机械有限公司| 亿传玻璃机械有限公司| 金坛市 机械有限公司| 三国精密机械有限公司| 杭州德智机械有限公司| 南平 机械 有限公司|