{"id":4298,"date":"2016-10-31T17:14:47","date_gmt":"2016-10-31T17:14:47","guid":{"rendered":"http:\/\/www.deuzebranaweb.com.br\/?p=4298"},"modified":"2016-10-31T17:14:47","modified_gmt":"2016-10-31T17:14:47","slug":"xcache-melhorando-o-poder-do-php","status":"publish","type":"post","link":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/2016\/10\/31\/xcache-melhorando-o-poder-do-php\/","title":{"rendered":"XCache: Melhorando o poder do PHP"},"content":{"rendered":"<p><strong>XCache<\/strong> \u00e9 um utilit\u00e1rio que mant\u00e9m um cache (opcode) scripts de mem\u00f3ria <span class=\"caps\">PHP<\/span> o sistema compila para evitar que esse passo sobre esses pedidos, e, principalmente, suporta servidores de internet LightTPD e Apache.<\/p>\n<p>Este sistema <strong>aumenta a velocidade de nossos sites<\/strong> entre 4 e 5 vezes, e podemos at\u00e9 ir mais longe usando as vari\u00e1veis de cache entrar e veremos. Ele<br \/>\ns\u00f3 \u00e9 necess\u00e1rio que a nossa vers\u00e3o de <span class=\"caps\">PHP<\/span> \u00e9 entre 4,3 e 5,3 ( e desenvolvendo algumas vers\u00f5es 6.0), exceto 5.0.<\/p>\n<h2>instalar XCache<\/h2>\n<p>Em um sistema baseado em pacotes com Debian basta:<\/p>\n<p><code><br \/>\n$ sudo aptitude install php5-xcache<\/code><\/p>\n<p><code>$ sudo cat \/etc\/php5\/conf.d\/xcache.ini &gt;&gt; \/etc\/php5\/cgi\/php.ini<br \/>\n<\/code><\/p>\n<p>Para outros sistemas ou distribui\u00e7\u00f5es seria suficiente para executar os comandos apropriados (yum, pacman, etc) e alterar as rotas que se aplicam.<\/p>\n<p>Uma vez que tiver a instala\u00e7\u00e3o b\u00e1sica e uma configura\u00e7\u00e3o padr\u00e3o, n\u00f3s editar o arquivo <em>\/etc\/php5\/cgi\/php.ini<\/em> e alterar os valores <em>xcache.size<\/em> e<em>xcache.var_size<\/em> por valores apropriados (dependendo da <span class=\"caps\">RAM<\/span> do que n\u00f3stemos).<\/p>\n<p><code><br \/>\nxcache.size = 128M<\/code><\/p>\n<p><code>xcache.var_size = 2M<br \/>\n<\/code><\/p>\n<p>Embora pare\u00e7a que a quest\u00e3o tem a ver apenas a mem\u00f3ria cache de n\u00f3s tamb\u00e9m pode beneficiar do uso de m\u00faltiplos processadores nesta tarefa, para a qual, neste caso, eu digo que tenho quatro processadores:<\/p>\n<p><code><br \/>\nxcache.count = 4<\/code><\/p>\n<p><code>xcache.var_count = 4<br \/>\n<\/code><\/p>\n<p>(Para ver o n\u00famero de processadores no nosso servidor simplesmente executar <em>proc \/ cpuinfo cat \/ | processador grep -c<\/em> )<\/p>\n<h2>Aplicando a configura\u00e7\u00e3o<\/h2>\n<p>Uma vez que mudou os valores para <strong>reiniciar nosso servidor web<\/strong> , que deve ser Apache2:<\/p>\n<p><code>$ sudo \/etc\/init.d\/apache2 restart<\/code><\/p>\n<p>E se Lighttpd ser\u00e1:<\/p>\n<p><code>$ sudo \/etc\/init.d\/lighttpd restart<\/code><\/p>\n<p>Ap\u00f3s reiniciar e t\u00eam a XCache trabalhando. Para verificar um arquivo basta executar <span class=\"caps\">PHP<\/span> com uma chamada para phpinfo ():<\/p>\n<p><code>&lt;?php phpinfo(); ?&gt;<\/code><\/p>\n<p><strong>ou no terminal de comando:<\/strong><\/p>\n<p>php -r &#8220;phpinfo();&#8221; | grep xcache<\/p>\n<p>&nbsp;<\/p>\n<p>E n\u00f3s obter algo como isto:<\/p>\n<div class=\"article-asset-image article-asset-normal\">\n<div class=\"asset-content\"><img decoding=\"async\" class=\"centro_sinmarco\" src=\"https:\/\/i.blogs.es\/05af88\/2011-04-04_1540\/450_1000.png\" srcset=\"https:\/\/i.blogs.es\/05af88\/2011-04-04_1540\/450_1000.png 450w, https:\/\/i.blogs.es\/05af88\/2011-04-04_1540\/650_1200.png 681w, https:\/\/i.blogs.es\/05af88\/2011-04-04_1540\/1024_2000.png 1024w, https:\/\/i.blogs.es\/05af88\/2011-04-04_1540\/1366_2000.png 1366w\" alt=\"Resultado da phpinfo () com XCache\" \/><\/div>\n<\/div>\n<p>Este resultado de uma instala\u00e7\u00e3o em um Squeeze Debian e usando Apache2 como servidor web.<\/p>\n<h2>Verificando melhorias<\/h2>\n<p>XCache \u00e9 mais eficaz, como nos caches, os mais pedidos para os mesmos scripts s\u00e3o feitos para amortizar a despesa de mem\u00f3ria que estamos a fazer.<\/p>\n<p>Para fazer algumas medi\u00e7\u00f5es r\u00e1pidas podemos usar a ferramenta ab, que vem constru\u00eddo com o servidor Apache.<\/p>\n<p><code>$ ab -c25 -n750 http:\/\/misitio.com<\/code><\/p>\n<p>E n\u00f3s obter um resultado semelhante (no formato, \u00e9 claro) o seguinte:<\/p>\n<p><code><br \/>\nConcurrency Level: 25<br \/>\nTime taken for tests: 3.733 seconds<br \/>\nComplete requests: 750<br \/>\nFailed requests: 0<br \/>\nWrite errors: 0<br \/>\nTotal transferred: 50539500 bytes<br \/>\n<span class=\"caps\">HTML<\/span> transferred: 50403000 bytes<br \/>\nRequests per second: 200.93 [#\/sec] (mean)<br \/>\nTime per request: 124.421 [ms] (mean)<br \/>\nTime per request: 4.977 [ms] (mean, across all concurrent requests)<br \/>\nTransfer rate: 13222.60 [Kbytes\/sec] received<\/code><\/p>\n<p><code>Connection Times (ms) min mean[+\/-sd] median max<br \/>\nConnect: 0 8 14.9 5 156<br \/>\nProcessing: 25 113 40.1 104 525<br \/>\nWaiting: 20 70 26.8 69 227<br \/>\nTotal: 44 121 44.9 108 525<br \/>\n<\/code><\/p>\n<p>Neste caso , a melhoria foi de aproximadamente 15%, mas esse aumento ser\u00e1 mais percept\u00edvel em um site com muitas visitas e verificar a experi\u00eancia de navega\u00e7\u00e3o e gr\u00e1ficos de uso de <span class=\"caps\">CPU<\/span> .<\/p>\n<p>&nbsp;<\/p>\n<p>http:\/\/www.genbetadev.com\/php\/xcache-mejorando-la-potencia-de-php-i<\/p>\n<p>http:\/\/dicas.opsai.com.br\/home\/linux-e-unises\/xcache-no-php<\/p>\n<p>http:\/\/xcache.lighttpd.net\/pub\/Releases\/3.2.0\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>XCache \u00e9 um utilit\u00e1rio que mant\u00e9m um cache (opcode) scripts de mem\u00f3ria PHP o sistema compila para evitar que esse passo sobre esses pedidos, e, principalmente, suporta servidores de internet LightTPD e Apache. Este sistema aumenta a velocidade de nossos sites entre 4 e 5&#8230;<\/p>\n","protected":false},"author":2,"featured_media":4299,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_angie_page":false,"page_builder":"","footnotes":""},"categories":[6,19],"tags":[],"class_list":["post-4298","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","category-whmcapenel"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/4298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=4298"}],"version-history":[{"count":0,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/4298\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media\/4299"}],"wp:attachment":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=4298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=4298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=4298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}