Articles of 优化

传播你的服务器负载不仅会消耗更多的资源

我正在运行一个沉重的实时更新网站。 每个用户所需资源的数量是相当高的,生病给你一个例子。 build立 每次访问 应用程序是PHP / MySQL所以每次访问静态和dynamic内容加载。 资源:apache,php,mysql 每一秒 (不超过一秒钟就会太长) 该网站需要实时更新,所以每秒都有一个Ajax调用即时更新网站。 资源:jQuery,apache,php,mysql 单用户平均消费 (花费1分钟,访问3页) Apache:+/- 63请求/响应服务静态和dynamic内容(img,css,js,html) php:+/- 63请求/响应 mysql:+/- 63请求/响应 jquery:+/- 60个请求/响应 优化 我想优化这个过程,但是我认为最后也许会是一样的。 在实施和testing(这将需要数周)之前,我想从你们那里得到第二个意见。 每次访问 我想首先让nginx在前面,并作为代理来传递静态内容。 的recources: dynamic:apache,php,mysql 静态:nginx 这将在Apache上传播负载很多。 每一秒 对于每秒加载的脚本,我想在前面用nginx设置Node.js服务器端的JavaScript。 我想设置它,jquery发出请求一分钟,并且node.js每秒将数据stream到客户端。 资源:jQuery,nginx,node.js,mysql 单用户平均消费 (花费1分钟,访问3页) Nginx:4个请求/响应主要是静态内容(img,css,js) Apache:3只请求页面 PHP:3只请求页面 node.js:1个请求/ 60个响应 jquery:1个请求/ 60个响应 mysql:63个请求/响应 问题 正如您在优化中所看到的,来自Apache和PHP的负载被解除并放在nginx和node.js上。 这些以轻盈的脚印和良好的performance而闻名。 但我有我的疑惑,因为仍然有2个程序额外加载在内存中,他们消耗CPU。 所以有更less的工作,或更多的程序,更好。 在我花很多时间设置这个之前,我想知道这是否值得。

IP地址和服务器之间的实际区别是什么?

我对IP和其他DNStypes的服务器相关问题的理解确实不足(阅读:exteme noob)。 我知道一个专用服务器会提高速度。 如果有的话,速度有什么不同呢? 我是否正确理解了雅虎的最佳实践 ,我可以使用第二个IP来提供一些内容,这将增加用户的并行下载数量? 还是两个IP(购买相同的主机帐户)将指向同一台服务器? 或者它是如何工作的? 在考虑购买专用IP时应该注意其他优化方面的事情吗? 澄清 我正在谈论服务网页的速度,即我的网站的速度。 是的,我知道IP和服务器是完全不同的,甚至没有对立面,只是不同而已。 但是,这的确是我的问题! 重新提出的问题: 我的网站上将有第二个(专用)IP加速时间,它会加载和显示给用户? 还是这样做与IP完全没有关系,只是一个服务器问题? 如果现在还不清楚,我很抱歉。 这是一个真正的问题,我可能只是没有写得好。

Apache服务器状态,这是一个坏的迹象?

我最近一直在监视我的Apache状态,而且我的很多用户都在说这个站点响应的速度有多慢。 这是Apache状态: Current Time: Tuesday, 21-Jun-2011 20:58:45 EDT Restart Time: Sunday, 19-Jun-2011 13:06:38 EDT Parent Server Generation: 299 Server uptime: 2 days 7 hours 52 minutes 7 seconds Total accesses: 5586382 – Total Traffic: 3.5 GB CPU Usage: u10.71 s12.32 cu295.34 cs0 – .158% CPU load 27.8 requests/sec – 18.2 kB/second – 671 B/request 39 […]

如何优化postgresql81一个拥抱查询,但不是一个复杂的?

我有一个查询在服务器上执行需要15s。 服务器是bi-xeon 5130(2GHz),内置2GB内存和160GB scsi硬盘。 数据库是Debian 4 etch上的PostgreSQL 8.1。 这个查询是由一个ERP(openerp)执行的,所以我不能改变或修改它。 我可以testing它,因为我想要的,我可以重现很长一段时间,因为我想,我把它在日志文件中,并重现案件成pgadmin。 复制/粘贴到一个txt文件,简单的查询需要存储170Kb(只是文本查询)。 在执行期间,linux(通过'top'命令行)告诉我postgres使用99-100%的CPU,但只有6%的RAM。 那么,如何提高postgres的性能来获得这个查询执行的时间。 某个地方的参数? 在Postgres? 在Linux? 查询是这样的: SELECT id FROM sale_order_line WHERE (state IN ('confirmed', 'confirmed_wait', 'manquant')) AND (id IN (27405, 27399, 16583, 27395, XXX)) ORDER BY id DESC LIMIT 50; [将XXXreplace为20000的ID列表! ] 是的,这是一个怪物查询,但不是一个复杂的,其实很简单。 感谢帮助。 我search了很长时间(2周已经…)

为什么这个文件不尊重.htaccess的caching控制头?

testing性能改进,我添加了一个.htaccess文件与我/assets文件夹(我在这里存储各种types的几个图像)的以下指令。 <FilesMatch "\.(jpg|jpeg|png|gif)$"> Header set Cache-Control "public,max-age=7200" </FilesMatch> 看着ySlow的输出,它奇怪地向我显示了这一点: Resource Expires /assets/slide-1.jpg 2012/5/22 /assets/partners/part_01.gif 2012/5/22 /assets/partners/spacer.gif 2010/4/15 检查spacer.gif的标题,我注意到,一个gif有我的Cache-Control: public,max-age=7200头和一个Expires: Thu, 15 Apr 2010 20:00:00 GMT头,而所有其他图像在尊重最大年龄标题的文件夹中,没有明确的到期标题。 我敢肯定,没有其他文件名特定的caching控制指令在玩。 我曾经在web根目录下有一个caching破坏过去的过期date标题,但是这个标题已经被删除了,而且对于其他任何文件似乎都不是“粘滞”的。 为什么会这样?

CDN域上的延迟很高

CDN域上的延迟很高 我的服务器有延迟问题,这些是我用blitz.io做的testing 延迟专辑 Latency problem 我会在这里上传图片,但它需要10 +代表,不能发布多个链接,所以我上传图片在imgur专辑。 我的域名是由Cloudflare CDN托pipe的。 我在Cloud SSD主机 DigitalOcean上托pipe 。 当没有stream量时,服务器上的延迟时间是40毫秒。 使用CDN的服务器上的延迟现在是〜270ms 没有CDN的服务器上的延迟是〜300ms 我以前在Windows Azure上托pipe, 没有stream量的延迟是〜70ms 交通延迟~210毫秒 尽pipeDigitalOcean上的延迟更高,但我的内容在Windows Azure服务器上的加载速度要快得多。 老Azure服务器,专辑 imgur.com/a/fpHK9 我不能发布更多的2个链接,在浏览器中的C / P DigitalOcean服务器上未configuration防火墙,是Microsoft Azure服务器上的默认Azure FW,端点configuration。 内容 有效载荷大小 图像〜156 KB CSS〜12 KB 标志〜20 KB 随机内容加载在每个浏览量4KB 随机内容总大小为116 KB,即被加载 总共〜300KB,全部托pipe在CDN上。 不是所有的一次加载。 Cloudflare统计,专辑 imgur.com/a/qxnbo 我不能发布更多的2个链接,在浏览器中的C / P networking分析与Firefox,专辑 Network 内容在页面加载完成后加载。 记忆 服务器在lighttpd上运行。 记忆 XXX@XXX:~# […]

为HTTPS调整Apache KeepAlive超时

我的网站强制使用HTTPS,平均首次加载时间为3-5秒。 由于caching,重复加载时间是0.8秒。 SSL协商在我的服务器上需要150-300ms,所以我想尽可能频繁地保持每个连接的活动,以防止延迟。 SSLSessionCache被设置为默认的300秒。 Apache KeepAlive Timeout最近从5秒降低到2秒。 这种变化导致服务器负载平均值(平均值为5%,而不是平均值为10%)明显下降,但是我想知道如果第一次加载时间是3-5秒,是否会导致第一次加载时间变慢? 这是否意味着它每次通过2秒超时都必须再次执行SSL协商? 使用较less的SSL协商(但更多的睡眠httpd任务),或更低的负载平均数与更多的SSL协商是否更好? 我们绝对拥有足够的CPU和内存资源。 所以最终的问题是,什么会为我们的观众带来最好的performance呢? 将KeepAlive Timeout提高到3-5,还是保持在2? 谢谢!

利用nginx VPS负载testing识别瓶颈

我试图优化一个数字海洋液滴(512mb),使用loader.io进行testing 我正在testing我的主页,这是HTTPS / PHP。 我设置了FastCGI页面caching,从100 req / sec到2000 req / sec。 但是超过2000 req / sec的任何事情都会导致很多超时和缓慢的响应(平均从20ms到1500ms)。 我试图找出瓶颈。 这不是CPU /内存,因为负载刚刚达到0.30,内存使用量大约是一半。 我尝试调整到更大的水滴,超时仍然发生。 这不是FastCGI,因为基本的.html文件的负载testing性能几乎相同。 在超时期间,error.log是空的。 没有什么似乎是抛出错误(我可以find)。 Kern.log有这个日志: TCP: Possible SYN flooding on port 80. Sending cookies. Check SNMP counters TCP: Possible SYN flooding on port 443. Sending cookies. Check SNMP counters. 我试图禁用syncookies,它停止了这些错误,但超时仍然存在。 在超时期间,我开始看到TIME_WAIT的积累: netstat -ntla | awk '{print $6}' […]

将htaccess规则移到apacheconfiguration文件

我正在一个专门的服务器(Debian)上运行Joomla的网站,我已经读过将.htaccess规则移动到apache2configuration文件可能会导致很好的性能改进( Apache HTTP Server Tutorial:.htaccess文件 )。 / etc / apache2中的主要configuration文件:apache2.conf 在apache2.conf中,有一些我能够理解的指令: AccessFileName .htaccess 和 Include sites-enabled/ 服务器只托pipe一个网站。 在启用网站的情况下,还有另一个文件包含其他指令:000-default: DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow […]

`nginx reload`和'nginx -t`非常慢 – 如何调查

AWS(EC2 t2.nano)上运行nginx服务器的VPS非常小。 虽然有时一个sudo service nginx reload或nginx -t快速,大部分时间是非常慢(> 60秒),没有任何负载的服务器上。 有大约10个服务器块被定义为代理服务器,其中启用了ssl。 nginx-t -v没有给出任何线索,为什么这么慢,我在日志中找不到任何东西。 在此期间,RAM和CPU使用率相当低。 我怎么能调查是什么让重新加载nginx缓慢,什么是常见的东西,我可以找的? DNSparsing? 我的上游都被定义为例如 upstream ent-pbmcom { ip_hash; # for sticky sessions server 10.0.2.52:8080; } … server { … location / { add_header X-Block "ent-pbmcom"; add_header X-Upstream $upstream_addr; add_header X-Requested-Host '$host'; proxy_pass http://ent-pbmcom; proxy_set_header X-Real-IP $remote_addr; # http://wiki.nginx.org/HttpProxyModule proxy_set_header Host $host; # pass the […]