nginx时间到第一个字节

我在一台机器上运行几个项目,下面有所有的信息。
nginxconfiguration中如果PHP项目使用fastcgicaching, Node.js项目使用proxy_pass ,所有项目使用gzip

我是新来维护服务器,我的问题是所有的项目运行testing例如http://www.webpagetest.org/ 第一个字节的时间是如此之高 ,我一直search几个星期,我不明白为什么? 并想知道这些结果是这台机器的瓶颈? 还是我想念什么? 任何build议表示赞赏!
domain1.com690 ms First Byte Time, 6 ms Target First Byte Time
sub.domain2.com509 ms First Byte Time, 6 ms Target First Byte Time
domain4.com1772 ms First Byte Time, 9 ms Target First Byte Time

背景信息

 linode 1 GB RAM 1 CPU Core 24 GB SSD Storage 2 TB Transfer 40 Gbps Network In 125 Mbps Network Out nginx PHP Node.js PostgreSQL 

CPU  - 月 - 平均2小时 交通 - 月 -  2小时平均 IO  - 月 - 平均2小时

nginxconfiguration

 server { listen 80; server_name domain1.com www.domain1.com; access_log /var/log/nginx/domain1.com.access.log; root /var/www/html/domain1.com; index index.php index.html index.htm; try_files $uri $uri/ /index.php?$query_string; client_max_body_size 1G; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 32k; fastcgi_buffers 8 32k; # cache fastcgi_cache domain1.com; fastcgi_cache_valid 200 60m; fastcgi_cache_methods GET HEAD; fastcgi_cache_key $scheme$request_method$host$request_uri; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; } } server { listen 80; server_name sub.domain1.com www.sub.domain1.com; access_log /var/log/nginx/sub.domain1.com.access.log; root /var/www/html/sub.domain1.com; index index.php index.html index.htm; try_files $uri $uri/ /index.php?$query_string; client_max_body_size 1G; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 32k; fastcgi_buffers 8 32k; # cache fastcgi_cache sub.domain1.com; fastcgi_cache_valid 200 60m; fastcgi_cache_methods GET HEAD; fastcgi_cache_key $scheme$request_method$host$request_uri; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; } } server { listen 80; server_name domain2 www.domain2; access_log /var/log/nginx/domain2.access.log; location / { proxy_pass http://127.00.0.1:8001/; } } server { listen 80; server_name sub.domain2 www.sub.domain2; access_log /var/log/nginx/sub.domain2.access.log; location ~ ^/sitemap/(.*)$ { root /var/www/html/sub.domain2/app/Sitemap/SitemapGz; } location /robots.txt { alias /var/www/html/sub.domain2/app/robots.txt; } location ~ ^/(images/|javascripts/|stylesheets/|fonts) { root /var/www/html/sub.domain2/app/assets; access_log off; expires max; } location / { set $fixed_destination $http_destination; if ( $http_destination ~* ^https(.*)$ ) { set $fixed_destination http$1; } proxy_pass http://127.00.0.1:8002/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Destination $fixed_destination; client_max_body_size 32M; client_body_buffer_size 512k; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } server { listen 80; server_name domain3.io www.domain3.io; access_log /var/log/nginx/domain3.io.access.log; location / { proxy_pass http://127.00.0.1:8003/; } } server { listen 80; server_name domain4.com www.domain4.com; access_log /var/log/nginx/domain4.com.access.log; root /var/www/html/domain4.com; index index.php index.html index.htm; try_files $uri $uri/ /index.php?$query_string; client_max_body_size 1G; location ~ ^/sitemap/(.*)$ { root /var/www/html/domain4.com/app/Sitemap/SitemapGz; } location /robots.txt { alias /var/www/html/domain4.com/app/robots.txt; } location ~ ^/(images/|javascripts/|stylesheets/|fonts) { root /var/www/html/domain4.com/app/assets; access_log off; expires max; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 32k; fastcgi_buffers 8 32k; # cache fastcgi_cache domain4.com; fastcgi_cache_valid 200 60m; fastcgi_cache_methods GET HEAD; fastcgi_cache_key $scheme$request_method$host$request_uri; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; } } 

免费-m

  total used free shared buffers cached Mem: 987 721 266 3 19 124 -/+ buffers/cache: 577 409 Swap: 255 133 122 

ps aux –sort -rss | 头
(用户apache是​​nginx,因为我用来在这台机器上安装apache,但现在停止服务)

 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND apache 24505 5.2 13.1 372208 132552 ? R 06:33 1:26 php-fpm: pool www apache 24502 4.8 12.5 366332 126748 ? R 06:33 1:20 php-fpm: pool www root 15490 0.2 11.6 1036476 117820 ? Ssl Sep30 1:30 node /var/www/html/sub.domain4.com/app/app.js root 11488 0.0 3.3 905404 34336 ? Ssl Sep15 16:21 PM2 v0.14.7: God Daemon apache 24866 7.0 3.0 265504 30448 ? S 06:56 0:18 php-fpm: pool www apache 25247 7.3 2.6 262260 26976 ? S 06:58 0:10 php-fpm: pool www apache 25449 7.1 2.3 259408 24260 ? S 06:58 0:07 php-fpm: pool www mongod 3584 0.9 1.9 653472 19588 ? Sl Sep07 317:26 /usr/bin/mongod -f /etc/mongod.conf root 2637 0.1 1.0 431044 11096 ? Sl Sep07 56:31 /usr/bin/python -Es /usr/bin/fail2ban-server -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid -x -b 

df -h

 Filesystem Size Used Avail Use% Mounted on /dev/xvda 24G 3.3G 20G 15% / tmpfs 492M 108K 492M 1% /dev/shm 

已经停止了apache

sudo lsof -nPi | grep“:80(LISTEN)”

 nginx 15280 root 12u IPv4 91859687 0t0 TCP *:80 (LISTEN) nginx 15282 nginx 12u IPv4 91859687 0t0 TCP *:80 (LISTEN) 

服务httpd状态

 httpd is stopped 

UPDATE

在升级到2GB内存2个CPU内核之后,当我ping通域名或者再次使用http://www.webpagetest.orgtesting时速度更快,但是在报告中Target First Byte Time变得更高了,这是什么原因?

免费-m

  total used free shared buffers cached Mem: 1991 744 1246 12 78 229 -/+ buffers/cache: 436 1554 Swap: 255 0 255 

ps aux –sort -rss | 头

 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2732 0.5 6.7 1069664 136836 ? Ssl 09:46 0:07 node /var/www/html/domain/app/app.js mongod 2598 0.4 3.4 649400 69728 ? Sl 09:43 0:06 /usr/bin/mongod -f /etc/mongod.conf root 2706 0.1 2.2 978924 45424 ? Ssl 09:45 0:02 PM2 v0.14.7: God Daemon apache 5458 6.1 1.7 268540 35964 ? S 10:03 0:16 php-fpm: pool www apache 5518 6.6 1.7 267752 35184 ? S 10:03 0:16 php-fpm: pool www apache 5332 6.8 1.7 267604 35100 ? S 10:02 0:20 php-fpm: pool www apache 5330 6.8 1.6 267420 34568 ? S 10:02 0:20 php-fpm: pool www apache 5493 7.1 1.6 266028 33484 ? S 10:03 0:18 php-fpm: pool www postgres 2557 0.3 0.9 324640 19812 ? S 09:43 0:04 /usr/pgsql-9.4/bin/postmaster -D /var/lib/pgsql/9.4/data 

df -h

 Filesystem Size Used Avail Use% Mounted on /dev/xvda 24G 2.3G 21G 10% / tmpfs 994M 108K 994M 1% /dev/shm 

domain1.com108 ms First Byte Time, 108 ms Target First Byte Time
sub.domain2.com514 ms First Byte Time, Target First Byte Time
domain4.com124 ms First Byte Time, 114 ms Target First Byte Time

我要做的第一件事是将服务器的RAM加倍。 有很less的免费,这意味着很less的数据可以caching在RAM中。 这意味着几乎所有的磁盘读取操作都必须打开磁盘,这会降低读取和写入的速度。