A visualizar arquivo completo com todos os posts do Blog

Devemos sempre fazer os nossos testes de performance quando testamos algo. Nem sempre o que se diz nos fóruns e em sites da especialidade se converte em melhorias caso dos nossos sites em especifico.

E no meu caso cheguei a essa conclusão ao efectuar alguns testes com o Memcached.

Disco SSD da Samsung

Quando desenvolvi o o meu próprio CMS um dos pontos onde me foquei foi na performance, essencialmente na cache e na redução de pedidos ao servidor. Isto permitiu-me reduzir custos e ter vários sites com um total superior a 250 mil visitas mensais a correr num servidor com apenas 2GB de Ram.

E não são sites estáticos, tal como o Mais Gasolina que tem várias actualizações diárias feitas pelos utilizadores, assim como outros sites onde existem API’s a serem consumidas por serviços externos. Mas com a cache é quase como se fossem.

Actualmente uso uma cache em filesystem, são ficheiros estáticos que são lidos pelo PHP que faz algumas verificações sobre os headers a enviar e devolve o conteúdo que já foi guardado com compressão.

Mas depois de muito ler e ver testes de performance onde o Memcached se mostrava superior até em sistemas com discos SSD decidi experimentar. A alteração de código era mínima, em vez de duas verificações para perceber se o ficheiro existia e abrir e ler o ficheiro, ligava-me ao Memcached e recebia os mesmos dados. Na teoria como estava em memória seria muito mais rápido.

Decidi então testar, primeiro com o sistema actual. Fiz vários acessos com browsers diferentes e fiz uma média do tempo de resposta do servidor através dos vários inspectores de cada browser. Depois com o Memcached fiz o mesmo teste.

Certamente depois de tudo o que li iria ser mais rápido mas constantemente os acessos eram mais lentos entre 1 a 2 ms. Ainda pensei, 2GB de Ram é pouco e pode estar a influenciar os meus testes. Graças à virtualização foi fácil colocar o servidor com 4GB de Ram, o dobro. Repeti os testes e o resultado foi o mesmo, mais 1 a 2 ms com Memcached.

Quer isto dizer que o Memcached é lento? Não! Mas eu podia ter-me guiado pela opinião de outras pessoas e pensar para mim próprio: instalei o Memcached, agora os sites estão mais rápidos. No meu caso em concreto o Memcached não compensa, até porque o sistema operativo não é parvo e acaba por colocar os ficheiros mais lidos em memória. O tempo adicional deve-se ao overhead da ligação ao serviço do Memcached, porque tanto os ficheiros estáticos como o conteúdo do Memcached já estavam em memória.

E antes de começarem a remover Memcached, Varnish ou Squid dos vossos servidores ou a enviarem-me emails a dizer que estou errado, percebam que estou a relatar o meu caso em concreto e o Memcached é uma óptima solução, mas não aqui.

Onde quero chegar com este artigo, ou TL;DR, antes de efectuarem alterações de performance testem e façam testes antes e depois de aplicarem essa alteração e comparem os valores. Não basta aceder uma vez, efectuar alterações, aceder novamente e comparar tempos de resposta. É preciso efectuar vários testes, obter uma média e comparar porque existem muitas variáveis em jogo.

Infelizmente ainda vejo developers e sysadmins a seguirem a lógica de aplicar a grande novidade do Github ou o que leram no Stackoverflow como uma verdade absoluta sem testarem se existem melhorias ou não, e isso tem que mudar para o beneficio de todos, mas especialmente dos utilizadores.

O primeiro trimestre deste ano manteve as tendências do ano anterior, com um aumento do número de utilizadores em mobile, especialmente em Android. E está na altura de começar a matar o Internet Explorer.

Estatísticas

 

Browsers
Browsers

Sem grandes alterações relativamente ao trimestre anterior, apenas o Internet Explorer continua com uma queda nos acessos. 97% dos utilizadores deste browser estão com a versão 11, mas com o aumento de utilizadores em Windows 10 está na hora de começar a mostrar avisos tal como se fez com as versões 6 e 8 do IE e terminar de vez com este browser.

Sistemas Operativos
Sistemas Operativos

Novamente sem grandes alterações com o Windows a manter-se o mais usado mas com Android a ganhar quota de mercado.

O número de utilizadores com a versão 10 já é superior a 50% no universo de utilizadores de Windows.

Resoluções
Resoluções

Nas resoluções continua o mesmo panorama, 360×640 e 1366×768 são as mais usadas e penso que durante este ano não devemos ter grandes alterações, excepto a queda de resoluções mobile baixas com apenas 320px de largura.

As estatísticas aqui apresentadas são provenientes de vários sites com um público alvo generalista. São incluídos os dados de cerca de 200.000 utilizadores únicos baseados em Portugal.
Os dados aqui apresentados podem não corresponder ao público alvo do seu website.

A equipa do CPanel tem andado ocupada com novas funcionalidades de performance e segurança, uma delas é o suporte a HTTP2 com o Easy Apache 4. Está disponível de forma experimental, mas dos testes que efectuei está bastante estável.

E os sites demoram menos 40% do tempo a carregar!

SR71 Blackbird

Efectuei alguns testes através do Pingdom de forma faseada para obter uma média antes e depois de aplicar o protocolo HTTP/2 na página inicial do Mais Gasolina por efectuar pedidos de vários endereços e ter vários tipos de recursos a serem carregados (CSS, JS, imagens, fontes, etc). No total são feitos 47 pedidos e é descarregado um total de 390kB.

Com HTTP/1.1 a média de carregamento ficou nos 1.26s até todos os conteúdos estarem disponíveis, já com HTTP/2.0 a média ficou nos 758ms, uma diferença considerável, perto de 40% mais rápido.

A instalação é extremamente simples, basta seguir os passos indicados na página onde foi pedida esta funcionalidade e em menos de 2 minutos ter os vossos sites com HTTP/2, presumindo que já têm SSL activo, mas se não têm o CPanel também trata disso.

Depois disso podem consultar os headers a partir do vosso browser ou usar uma ferramenta como HTTP2 Test da KeyCDN para verificar que o vosso site já suporta HTTP/2.

Uma forma de tornar o Apache mais rápido é desactivar o suporte a ficheiros .htaccess. Neste artigo vamos aprender como o fazer, mas sem perder a versatilidade que um .htaccess permite.

Comboio Maglev

Os ficheiros .htaccess permitem definir configurações especificas a um determinado domínio sem ser necessário aceder às configurações do servidor em si. Isto é óptimo para ambientes de alojamento partilhado ou servidores privados com vários websites, permitindo configurações independentes para cada domínio.

Mas esta leitura é lenta, o Apache na sua configuração padrão pode recuar vários directórios à procura de um ficheiro .htaccess e aplicar as suas regras. Isto é feito em cada pedido, mesmo com conteúdo estático. Se desactivarmos esta funcionalidade o Apache fica muito mais rápido.

Desactivar é simples, mas queremos manter as regras do mod_rewrite, mod_expires e afins. Estes são os passos que segui para o fazer num servidor com CPanel, mas existem outras formas de o fazer.

Desactivar o .htaccess

Através do WHM do CPanel se acedermos a Apache Configuration > Include Editor vamos editar o ficheiro post_virtualhost_global.conf onde vamos colocar as nossas configurações. Este ficheiro não é rescrito na actualização do Apache, sendo através do CPanel o método ideal em vez de editar os ficheiros do Virtual Host directamente via SSH.

Neste ficheiro vamos colocar os apontadores para os nossos ficheiros .htaccess

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Regras gerais
<Directory "/">
	IndexIgnore *
	AllowOverride none
</Directory>

# Regras separadas por directório, por site
<Directory "/home/username/public_html/">
	IncludeOptional /home/username/public_html/.htacces[s]
</Directory>

<Directory "/home/outrousername/public_html/">
	IncludeOptional /home/outrousername/public_html/.htacces[s]
</Directory>

Explicando o código, no directório inicial “/” vamos aplicar as regras comuns a todo o servidor, neste caso remover os indexes das pastas sem ficheiros index e desactivar o .htaccess com o AllowOverride como none.

Depois para cada pasta de cada site que temos vamos criar uma entrada onde colocamos o ficheiro .htaccess.

O ficheiro é incluído sempre dentro de um parâmetro Directory. Assim em caso de erro no ficheiro ou um ataque apenas vamos afectar aquele domínio.

Usa-se o IncludeOptional com um pequeno truque que encontrei no Stack Overflow para que seja verificado um padrão no nome do ficheiro, desta forma se o ficheiro for eventualmente eliminado não ocorrem erros de configuração e o Apache continua a funcionar.

Se pretenderem também podem copiar o conteúdo do ficheiro .htaccess para aqui, mas desta forma o conteúdo fica separado em ficheiros por cada site, torna-se mais fácil a sua gestão e mantém-se a compatibilidade com algumas funcionalidades do CPanel ou scripts como o WordPress.

Porque é mais rápido desta forma?

Ao contrário de um ficheiro .htaccess carregado pela forma convencional, onde as regras são interpretadas e aplicadas sempre que é feito um pedido (mesmo em conteúdo estático), aqui as regras são carregadas e interpretadas quando o Apache inicia, ficando em memória.

Removemos assim o processo de verificar várias pastas à procura de ficheiros .htaccess e a leitura dos mesmos.

Pontos a ter em conta

Desta forma continua a ser possível usar ficheiros .htaccess, mas o modo de funcionamento não é igual.

Como indiquei os ficheiros são lidos quando o Apache arranca, isto quer dizer que podemos remover ou editar estes ficheiros e as novas regras apenas são aplicadas se reiniciarmos o serviço. Dependendo do sistema operativo onde estamos a correr podemos forçar via SSH o carregamento das regras com um reload.

O ano de 2016 chegou ao fim e destacou-se por ser um ano com um grande crescimento nos acessos através de telemóveis em Portugal.

O crescimento foi de tal forma que o número de utilizadores móveis já é superior ao número de utilizadores com desktop / portáteis e continua a subir. O Android já tem quase tanta utilização nos acessos à Web como o Windows.

Estatísticas

 

Browsers
Browsers

O Chrome continua a ganhar terreno, podendo-se tornar no próximo Internet Explorer com uma fatia significativa do mercado. Neste momento 64%.

No caso do Internet Explorer apenas a versão 11 continua com acessos, já as versões do IE10 e IE9 contam com um número inferior a 1000 utilizares, num universo de 200.000.

Novos websites a serem desenvolvidos podem optar por suportar apenas a versão 11 do IE. Ignorar este browser infelizmente ainda não é possível porque conta com 7% do mercado.

Sistemas Operativos
Sistemas Operativos

Os acessos em mobile continua a ser superiores aos em desktop, mas o Windows continua a ser o mais usado, seguido pelo Android. Estes dois sistemas operativos dominam o mercado com mais de 80% dos utilizadores.

Linux continua a cativar poucos utilizadores em desktop e portáteis, tendo uma percentagem de utilização inferior a 0,5% e deixa assim de figurar nas estatísticas. O Windows Phone que tem um número de utilizadores irrisório consegue ter mais do dobro de acessos do que Linux.

Resoluções
Resoluções

Nas resoluções continua o mesmo panorama, 360×640 e 1366×768 são as mais usadas.

As estatísticas aqui apresentadas são provenientes de vários sites com um público alvo generalista. São incluídos os dados de cerca de 200.000 utilizadores únicos baseados em Portugal.
Os dados aqui apresentados podem não corresponder ao público alvo do seu website.

O Mais Gasolina completou 10 anos e como “prenda” fiz uma nova aplicação para Android, que já bem merecia!

App Mais Gasolina

A aplicação é híbrida como tantas outras, e como já era a antiga. Isto permite-me não só poder actualizar dados sem ser necessária uma actualização da aplicação, como aconteceu quando apareceram os combustíveis simples, como tornar mais rápido o desenvolvimento da app por se tratar de tecnologia com a qual estou à vontade.

Uma das falhas da aplicação era não permitir que um utilizador registado no site fizesse login na app para aceder aos favoritos, guardar preferências ou actualizar preços. Outra prioridade para mim era fazer a aplicação rápida e usar pouco tráfego.

O aspecto da app também foi actualizado, passando agora a usar Material Design. Desta forma a aplicação fica com o mesmo aspecto que as restantes e como o Material Design funciona muito à base de cartões ou secções de conteúdo a aplicação fica praticamente idêntica ao site.

Para a localização passou-se a obter de forma aproximada com os dados fornecidos pela rede de telemóvel ou pontos WiFi próximos. É possível que venha a introduzir novamente a localização por GPS para sitios com pouca cobertura de rede, mas sempre como segundo recurso. Esta alteração foi feita para poupar bateria no telemóvel.

Os resultados

Já passaram quase duas semanas e apesar do factor novidade, com os utilizadores a explorar a aplicação, os resultados são positivos. Neste momento cada utilizador da aplicação usa em média 25KB de tráfego a aceder a dados que se encontram no servidor, contra os anteriores 42KB. Excluem-se aqui os logótipos de cada marca que já eram consumidos do mesmo local centralizado.

Ao permitir usar sprites e imagens em SVG existiu uma grande redução de tamanho, garantindo também uma qualidade de imagem superior em ecrãs de alta densidade. E ao utilizar o sistema de cache e minify que desenvolvi consegui reduzir também o tamanho do HTML gerado.

E com o login e registo através da aplicação aumentou o número de novos utilizadores no site, alguns desses que já começaram a actualizar preços pela app.

Se pretenderem podem testar a aplicação, ou se já a têm e ainda não actualizaram, através do Google Play. Se não tiverem um telemóvel Android existem outras opções disponíveis.

É no terceiro trimestre do ano que grande parte dos portugueses está de férias e a utilização de dispositivos móveis subiu de tal forma que ultrapassou o número de acessos através de computador.

Mais de 52% dos acessos foram de dispositivos móveis e por isso passam agora a estar disponíveis nos gráficos também os sistemas operativos e resoluções de telemóveis e tablets.

Estatísticas

 

Browsers
Browsers

Chrome e Safari sobem, como seria de esperar, com o aumento dos acessos em Mobile. O número de utilizadores com o browser Opera (Desktop e Mobile) ficam abaixo de 1%.

O Edge continua a ganhar mercado com a subida de utilizadores com Windows 10. No caso do Internet Explorer, os resistentes que ainda o usam, já estão praticamente todos na versão 11 (mais de 90%). Infelizmente ainda é uma percentagem elevada (7%), espero que em 2017 este browser passe a ser irrelevante.

Sistemas Operativos
Sistemas Operativos

Os acessos em mobile passam os feitos por computador, com o Android a ter uma percentagem de utilização muito próxima do Windows.

A grande novidade em desktop é que o número de utilizadores com Windows 10 subiu e é agora a versão mais utilizada, com 43% dos utilizadores. No caso do Android a maioria dos utilizadores tem a versão KitKat ou superior, sendo as versões KitKat e Marshmallow as mais utilizadas.

Resoluções
Resoluções

Nas resoluções continua o mesmo panorama, 360×640 e 1366×768 são as mais usadas.

Em desktop a maior resolução com uma utilização considerável é 1920×1080, larguras superiores aparecem apenas em casos esporádicos, inferior a 0,02% do total dos cerca de 200.000 utilizadores únicos em que se baseia esta estatística.

As estatísticas aqui apresentadas são provenientes de vários sites com um público alvo generalista. São incluídos os dados de cerca de 200.000 utilizadores únicos baseados em Portugal.
Os dados aqui apresentados podem não corresponder ao público alvo do seu website.
 
Copyright © 1985 - 2017 Eduardo Maio. Alguns direitos reservados.
eduardomaio.net - Às vezes mais valia ser Agricultor do que Programador
Ao navegar no blog eduardomaio.net está a concordar com os termos legais e de privacidade.