2013-04-05 24 views
0

我有OpenVZ VPS 400Mb內存和800MHz的CPU。操作系統是Debian 6.我已經安裝了Apache2和Wordpress。OpenVZ,apache2和wordpress:長第一個字節時間

我使用web工具測試我的網站性能。測試結果在這裏:http://www.webpagetest.org/result/130405_04_5TF/

所有工作正常,但第一個字節時間太長。我不明白爲什麼apache很長的時間不會提供靜態內容。

這是怎麼發生的?如果需要,我可以提供配置文件。

apache2.conf:

LockFile ${APACHE_LOCK_DIR}/accept.lock 

PidFile ${APACHE_PID_FILE} 

Timeout 300 

KeepAlive On 

MaxKeepAliveRequests 100 

KeepAliveTimeout 15 

<IfModule mpm_prefork_module> 
StartServers  1 
MinSpareServers 1 
MaxSpareServers 5 
MaxClients  10 
    MaxRequestsPerChild 0 
</IfModule> 

<IfModule mpm_worker_module> 
StartServers  1 
MinSpareThreads 1 
MaxSpareThreads 4 
    ThreadLimit   64 
    ThreadsPerChild  25 
MaxClients  10 
    MaxRequestsPerChild 0 
</IfModule> 

<IfModule mpm_event_module> 
StartServers  1 
MaxClients  10 
MinSpareThreads 1 
MaxSpareThreads 4 
    ThreadLimit   64 
    ThreadsPerChild  25 
    MaxRequestsPerChild 0 
</IfModule> 

User ${APACHE_RUN_USER} 
Group ${APACHE_RUN_GROUP} 

AccessFileName .htaccess 

<Files ~ "^\.ht"> 
    Order allow,deny 
    Deny from all 
    Satisfy all 
</Files> 

DefaultType text/plain 

HostnameLookups Off 

ErrorLog ${APACHE_LOG_DIR}/error.log 

LogLevel warn 

Include mods-enabled/*.load 
Include mods-enabled/*.conf 

Include httpd.conf 

Include ports.conf 

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined 
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined 
LogFormat "%h %l %u %t \"%r\" %>s %O" common 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 

Include conf.d/ 

Include sites-enabled/ 

的httpd.conf是空

的.htaccess我的網站(與W3超高速緩存指令):

# BEGIN W3TC Browser Cache 
<IfModule mod_mime.c> 
    AddType text/css .css 
    AddType text/x-component .htc 
    AddType application/x-javascript .js 
    AddType application/javascript .js2 
    AddType text/javascript .js3 
    AddType text/x-js .js4 
</IfModule> 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType text/css A31536000 
    ExpiresByType text/x-component A31536000 
    ExpiresByType application/x-javascript A31536000 
    ExpiresByType application/javascript A31536000 
    ExpiresByType text/javascript A31536000 
    ExpiresByType text/x-js A31536000 
</IfModule> 
<IfModule mod_deflate.c> 
    <IfModule mod_headers.c> 
     Header append Vary User-Agent env=!dont-vary 
    </IfModule> 
     AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json 
    <IfModule mod_mime.c> 
     # DEFLATE by extension 
     AddOutputFilter DEFLATE js css htm html xml 
    </IfModule> 
</IfModule> 
<FilesMatch "\.(css|htc|js|js2|js3|js4|CSS|HTC|JS|JS2|JS3|JS4)$"> 
    <IfModule mod_headers.c> 
     Header set Pragma "public" 
     Header append Cache-Control "public" 
     Header unset Set-Cookie 
    </IfModule> 
</FilesMatch> 
<FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|SVG|SVGZ|TXT|XSD|XSL|XML)$"> 
    <IfModule mod_headers.c> 
     Header set Pragma "public" 
     Header set Cache-Control "max-age=86400, public" 
    </IfModule> 
</FilesMatch> 
<FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip|ASF|ASX|WAX|WMV|WMX|AVI|BMP|CLASS|DIVX|DOC|DOCX|EOT|EXE|GIF|GZ|GZIP|ICO|JPG|JPEG|JPE|JSON|MDB|MID|MIDI|MOV|QT|MP3|M4A|MP4|M4V|MPEG|MPG|MPE|MPP|OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|PNG|POT|PPS|PPT|PPTX|RA|RAM|SVG|SVGZ|SWF|TAR|TIF|TIFF|TTF|TTC|WAV|WMA|WRI|XLA|XLS|XLSX|XLT|XLW|ZIP)$"> 
    <IfModule mod_headers.c> 
     Header set Pragma "public" 
     Header set Cache-Control "max-age=31536000, public" 
    </IfModule> 
</FilesMatch> 
# END W3TC Browser Cache 
# BEGIN WordPress 

# END WordPress 

<files wp-config.php> 
    Order deny,allow 
    deny from all 
</files> 

<files setchmod> 
    Order deny,allow 
    deny from all 
</files> 

的php.ini:

engine = On 
short_open_tag = On 
asp_tags = Off 
precision = 14 
y2k_compliance = On 
output_buffering = 4096 
zlib.output_compression = Off 
implicit_flush = Off 
unserialize_callback_func = 
serialize_precision = 100 
allow_call_time_pass_reference = Off 
safe_mode = Off 
safe_mode_gid = Off 
safe_mode_include_dir = 
safe_mode_exec_dir = 
safe_mode_allowed_env_vars = PHP_ 
safe_mode_protected_env_vars = LD_LIBRARY_PATH 
disable_functions = 
disable_classes = 
expose_php = On 
max_execution_time = 30 
max_input_time = 60 
memory_limit = 128M 
error_reporting = E_ALL & ~E_DEPRECATED 
display_errors = Off 
display_startup_errors = Off 
log_errors = On 
log_errors_max_len = 1024 
ignore_repeated_errors = Off 
ignore_repeated_source = Off 
report_memleaks = On 
track_errors = Off 
html_errors = Off 
variables_order = "GPCS" 
request_order = "GP" 
register_globals = Off 
register_long_arrays = Off 
register_argc_argv = Off 
auto_globals_jit = On 
post_max_size = 8M 
magic_quotes_gpc = Off 
magic_quotes_runtime = Off 
magic_quotes_sybase = Off 
auto_prepend_file = 
auto_append_file = 
default_mimetype = "text/html" 
doc_root = 
user_dir = 
enable_dl = Off 
file_uploads = On 
upload_max_filesize = 2M 
max_file_uploads = 20 
allow_url_fopen = On 
allow_url_include = Off 
default_socket_timeout = 60 
pdo_mysql.cache_size = 2000 
pdo_mysql.default_socket= 
define_syslog_variables = Off 
SMTP = localhost 
smtp_port = 25 
mail.add_x_header = On 
sql.safe_mode = Off 
odbc.allow_persistent = On 
odbc.check_persistent = On 
odbc.max_persistent = -1 
odbc.max_links = -1 
odbc.defaultlrl = 4096 
odbc.defaultbinmode = 1 
ibase.allow_persistent = 1 
ibase.max_persistent = -1 
ibase.max_links = -1 
ibase.timestampformat = "%Y-%m-%d %H:%M:%S" 
ibase.dateformat = "%Y-%m-%d" 
ibase.timeformat = "%H:%M:%S" 
mysql.allow_local_infile = On 
mysql.allow_persistent = On 
mysql.cache_size = 2000 
mysql.max_persistent = -1 
mysql.max_links = -1 
mysql.default_port = 
mysql.default_socket = 
mysql.default_host = 
mysql.default_user = 
mysql.default_password = 
mysql.connect_timeout = 60 
mysql.trace_mode = Off 
mysqli.max_persistent = -1 
mysqli.allow_persistent = On 
mysqli.max_links = -1 
mysqli.cache_size = 2000 
mysqli.default_port = 3306 
mysqli.default_socket = 
mysqli.default_host = 
mysqli.default_user = 
mysqli.default_pw = 
mysqli.reconnect = Off 
mysqlnd.collect_statistics = On 
mysqlnd.collect_memory_statistics = Off 
pgsql.allow_persistent = On 
pgsql.auto_reset_persistent = Off 
pgsql.max_persistent = -1 
pgsql.max_links = -1 
pgsql.ignore_notice = 0 
pgsql.log_notice = 0 
sybct.allow_persistent = On 
sybct.max_persistent = -1 
sybct.max_links = -1 
sybct.min_server_severity = 10 
sybct.min_client_severity = 10 
bcmath.scale = 0 
session.save_handler = files 
session.use_cookies = 1 
session.use_only_cookies = 1 
session.name = PHPSESSID 
session.auto_start = 0 
session.cookie_lifetime = 0 
session.cookie_path =/
session.cookie_domain = 
session.cookie_httponly = 
session.serialize_handler = php 
session.gc_probability = 0 
session.gc_divisor = 1000 
session.gc_maxlifetime = 1440 
session.bug_compat_42 = Off 
session.bug_compat_warn = Off 
session.referer_check = 
session.entropy_length = 0 
session.cache_limiter = nocache 
session.cache_expire = 180 
session.use_trans_sid = 0 
session.hash_function = 0 
session.hash_bits_per_character = 5 
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" 
mssql.allow_persistent = On 
mssql.max_persistent = -1 
mssql.max_links = -1 
mssql.min_error_severity = 10 
mssql.min_message_severity = 10 
mssql.compatability_mode = Off 
mssql.secure_connection = Off 
tidy.clean_output = Off 
soap.wsdl_cache_enabled=1 
soap.wsdl_cache_dir="/tmp" 
soap.wsdl_cache_ttl=86400 
soap.wsdl_cache_limit = 5 
ldap.max_links = -1 
+0

Apache如何設置運行PHP文件? – ebohlman 2013-04-05 08:34:58

+0

我不知道!我只需安裝apache2,然後使用libapache2-mod-php5安裝php5。我認爲,這不涉及到PHP,因爲即使是靜態文件,第一個字節時間也很長! – Nik 2013-04-05 10:53:29

+0

非主流,它聽起來像實現你的服務器的主機是超額認購的,雖然它值得檢查你的Apache配置文件,以確保你沒有做到次優。 – ebohlman 2013-04-05 11:12:51

回答

0

從Waterfa如果在結果頁面上查看,您可以看到,執行DNS查找並建立與服務器的連接需要0.5秒以上的時間。然後服務器處理第一個請求並使用HTTP 302重定向(至/?lang=en)需要大約0.25秒的時間。

由於您已正確配置保持活動,所有後續請求重新使用相同的連接。在收到重定向之後,客戶端發送一個新的請求,並等待你的服務器處理它(第二行的綠色條) - 它將你的服務器花費了大約0.7秒,這並不好。然後從服務器下載返回的數據大約需要0.15秒。其他請求也開始第二次連接,所以圖像通過兩個連接並行下載。

長時間建立連接可能是因爲您的服務器(愛沙尼亞)和測試服務器(可能是美國)之間的距離。您可以輕鬆優化的唯一一件事就是您的服務器需要0.7s來生成主頁。也許你需要調整你的MySQL參數或者設置Wordpress來緩存一些生成的頁面元素。

相關問題