← Hosting

Congestionamento num servidor dedicado

Lida 9292 vezes

Offline

Werewolf 
Membro
Mensagens 145 Gostos 0
Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Já tinha criado este tópico na secção "Webdesign, Programação e Desenvolvimento" mas o fpware aconselhou-me a fazer aqui.
Será que alguém me pode ajudar nesta questão?

Citação de: "WereWolf  [url=http://forum.maistrafego.pt/index.php?topic=3873
neste tópico[/url]"]Hey pessoal!
Estou com um grande problema no meu servidor e estou a criar este tópico na esperança que alguém me ajude a arranjar uma solução para o mesmo.
Sempre tive o meu site num servidor partilhado, mas devido ao seu crescimento, fui obrigado a comprar um servidor dedicado.
De inicio resolveu o problema mas o site não pára de crescer e agora tenho graves problemas com o loading do site e com o sql.
À noite então é quase impossível abrir o site chegando o sql a ter mais de 200 acessos por segundo, o que dificulta a abertura da página.

Estou cansado de procurar uma solução e a única coisa que me vem à cabeça é bloquear o acesso aos ip´s brasileiros visto ser a maioria que visita o meu site e que pouco rendimento me trazem.
Alguém conhece um bom script ou qualquer coisa do género que possa usar para bloquear estes acessos? E que tenha uma fácil actualização de ip´s.

Aguardo a vossa resposta e desde já agradeço a vossa atenção!


Ou será que um upgrade ao servidor irá resolver alguma coisa? Esta é a máquina:
Processador: P 4 3.2 HT Ghz
RAM: 2 GB
Porta: 100Mb

Por vezes o servidor acusa isto:
Memory Used: 83.4 %
Swap Used: 97.66 %

Será que ajudaria mais 1GB de RAM?
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Que SO tens? Provavelmente tens algo mal configurado, isso parece que a máquina nunca levou um reboot na vida... experimentar por um SO que coma menos recursos e um reboot à maquina.

Tens tudo actualizado?
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

Nao levar 1 reboot na vida nao e provavel lol
Mas os users ke tem e bem provavel persisar de mais 1 gb de ram
Offline

apoca 
Membro
Mensagens 96 Gostos 0
Troféus totais: 24
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 5 Level 4 Level 3 Level 2 Level 1 50 Posts 10 Posts

Bom falas-te ai em SQl não sei se falas mesmo em relação á plataforma SQL ou MYSQL... Penso que o problema não está na maquina até porque me parece que é muito boa ainda para mais quando aloja apenas um site... Bom problema aqui é a nivel de programação me parece que o algoritmo que tens ai no teu site não é o melhor para causar esses problemas..

Quanto á tua possivel solução de bloquear ips é meio complicado porque pode estar a pagar o justo por causa do pecador tinhas de ter uma base de dados com a lista de ISP portuguesas e onde e quando terminavam os ips das mesmas tipo se começasse em 212.13.35.qualquer era simplesnet etc.. mas isso ia-te causar o mesmo problema ter de fazer varios querys á base de dados para verificar se era PT ou não o ideal se calhar era FP (FILE TXT como repositorio).

Eu continuo a pensar que o teu problema está ou no algoritmo que utilizas... n sei que tipo de site se trata nem sei se usas algo pre-feito tipo phpbb, phpnuke etc.. Mas o verdadeiro problema me parece que está nas ligações do teu datacenter que das duas uma ou tem ligações fracas ou então devem aceder mesmo milhares de pessoas por segundo o que acjo improvavel... Tenta arranajr uma boa maquina MAS.... que tenha uma ligação OC12 (612MBPS).
É grande a diferença quando falamos de uma supermaquina com 10MBPS de ligação e uma com 100MBPS ou 612MBPS.. ou seja a maquina ai pouco importa o que importa é mesmo a ligação, quer dizer importa mais.. a ligação que tem.. ninguém me diz que esse data center está a fazer da tua maquina uma VPS... é "dedicada" até um certo ponto mas partilha a mesma ligação de dezenas de maquinas.

Um abraço qualquer duvida contacta-me pode ser que te arranje uma maquina á medida e com as caracteristicas necessárias.
Offline

Werewolf 
Membro
Mensagens 145 Gostos 0
Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Reboot leva quase todos os dias... porque por vezes deixa tudo de responder e tenho de fazer o request do reboot.
O SO é Linux e o servidor está todo actualizado.
O que deve andar a comer os recursos todos é o site! Tem muitas visitas e muitas pageviews... muitos querys! Talvez o melhor seja mesmo fazer uma  limpeza ao código de forma a eliminar o que não preciso.
Offline

Werewolf 
Membro
Mensagens 145 Gostos 0
Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Obrigado pela tua completa resposta apoca!
A respeito do site é um PHP-Nuke e conta em média com cerca de 15.000 visitas únicas diárias. Chego por vezes a ter mais de 1.000 utilizadores ligados ao mesmo tempo.
No mesmo servidor, não tenho só este site mas outro que tem em média 6.000 visitas únicas diárias.
Tenho outros sites lá mas os maiores são estes... os outros 3 devem rondar as 1000 visitas unicas diárias.
Não sei se o problema poderá estar aí mas penso que para o servidor que é devia estar a aguentar muito mais!
O mais provável é ser o que disseste, algum código que esteja a criar qualquer conflito... pois sei que o PHP-Nuke está cheio de falhas!
Mas haverá alguma forma de detectar essa falha?
E essa placa que me falaste? Resolveria o meu problema? É muito caro?
Por este servidor estou a pagar 180€ + iva.
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Werewolf, Tens sysadmin? Se pagares, o sysadmin da WebLusa pode te ver qual é o problema e dizer-te qual é a solução.
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

Werewolf, isso e a placa de rede fala com o DC
Ja agora podes dixer kual e?
Offline

SSPT 
Membro
Mensagens 408 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Werewolf, coloca aqui os resultados do comando 'top' para percebermos se o problema se deve ao servidor MySQL, Apache, Exim (em casos extremos de flood pode congestionar a ligação e consumir a memoria disponível).

Outra coisa é a memoria:
A memoria em utilização pode estar a 99% e não ser alarmante, desde que a memoria utilizada esteja em cache ou em buffer, isto é, sempre que o sistema operativo necessite liberta-a em milissegundos.

Quanto à swap é que ja parece alarmante, mas podes limpa-la sem reiniciar o servidor.

Se quiseres bloquear ips podes procurar no google por 'geoip' e optar por:
Alterar o codigo do php-nuke para bloquear um certo país
Instalar o mod_geoip no apache e bloquear directamente on-server.
Offline

gaya 
Membro
Mensagens 366 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Eu digo-te qual é o problema de graça. E nem preciso de ver.

Todos os sistemas quando crescem têm de levar marteladas para funcionar melhor. Provavelmente tudo se resolve vendo uma forma de passar para estatico coisas que estão na DB. Reduzindo esse trafego estupido que tens no MySQL.

Aconselho-te a ponderares bem essa questão. Veres uma forma de começar a queimar em HTML coisas ou a arranjares formas alternativas de DB.
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

Ou tambem apagar registos que nao sao uados podem ser 1ª boa forma..
Offline

ruicruz 
Membro
Mensagens 1105 Gostos 0
Feedback +1

Troféus totais: 32
Trófeus: (Ver todos)
Apple User Level 6 Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3

Que tal fazeres um tweak ao my.cnf?

Pasta aqui o teu /etc/my.cnf e diz-me as configurações do server (ram TOTAL, PC, disco, tipo de páginas, SO, versões de software PHP e MySQL).

Se quiseres bloquear IP's NÃO USES qualquer MOD_* que te disseram ali em cima. Porque isso é do apache. E eu posso-te lagar se fizer 100 ligações ao POP3. Tenta antes isto: http://projects.medialayer.com/

Em relação a:
"À noite então é quase impossível abrir o site chegando o sql a ter mais de 200 acessos por segundo, o que dificulta a abertura da página. "
Vês isso atravez de 'mysql' e 'status'?
Já vi um VPS 1 dos meus (tiflotecnia.net) correr 250 processos pro segundo e a andar normalmente (load de 10/15, mas a abrir páginas em 7 segundos, o que é aceitável).
Se estás num dedicado e tens esse problema, deves ter sido roubado, ou não te entregaram um servidor bem configurado.

SL
Offline

Werewolf 
Membro
Mensagens 145 Gostos 0
Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Citação de: "anjo2"
Werewolf, Tens sysadmin? Se pagares, o sysadmin da WebLusa pode te ver qual é o problema e dizer-te qual é a solução.

Sim, tenho um!
Já está a ver se detecta de onde está a vir o problema...

Citação de: "asturmas"
Werewolf, isso e a placa de rede fala com o DC
Ja agora podes dixer kual e?


Cá vai:
Código: [Seleccione]
root@server [~]# lspci
00:00.0 Host bridge: Intel Corporation 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82865G Integrated Graphics Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2)
00:1f.0 ISA bridge: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Int


Ou uma resposta mais simples:
É uma E100, da Intel

Citação de: "SSPT"
Werewolf, coloca aqui os resultados do comando 'top' para percebermos se o problema se deve ao servidor MySQL, Apache, Exim (em casos extremos de flood pode congestionar a ligação e consumir a memoria disponível).

A esta hora da tarde, estes são os dados:
Código: [Seleccione]
root@server [~]# top
top - 17:38:55 up 1 day, 22:30,  1 user,  load average: 4.16, 3.89, 3.39
Tasks: 356 total,   4 running, 351 sleeping,   0 stopped,   1 zombie
Cpu(s): 22.3% us,  7.6% sy,  0.0% ni, 67.7% id,  2.0% wa,  0.2% hi,  0.3% si
Mem:   2059760k total,  1837036k used,   222724k free,     7252k buffers
Swap:  1052248k total,   142600k used,   909648k free,   244528k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
22178 mysql     17   0 98972  75m 1996 R 29.8  3.8  11:26.90 mysqld
 1443 nobody    15   0 52456  15m  11m S  4.0  0.8   0:10.44 httpd
 2734 nobody    15   0 52720  14m  10m S  2.6  0.7   0:02.57 httpd
31477 mysql     16   0 98972  75m 1996 S  2.3  3.8   0:31.14 mysqld
 1592 nobody    15   0 52596  15m  11m S  2.3  0.8   0:07.10 httpd
 8907 nobody    15   0 63420  34m  19m S  2.0  1.7   1:33.51 httpd
11890 nobody    16   0 79944  50m  19m S  1.3  2.5   3:07.93 httpd
31517 mysql     16   0 98972  75m 1996 S  1.3  3.8   0:29.36 mysqld
 1096 nobody    16   0 53948  18m  12m R  1.3  0.9   0:12.87 httpd
 1572 nobody    15   0 77604  38m  10m S  1.0  1.9   0:13.39 httpd
31657 mysql     16   0 98972  75m 1996 S  0.7  3.8   0:28.14 mysqld
 1099 nobody    15   0 62464  27m  12m S  0.7  1.3   0:21.34 httpd
 1123 nobody    15   0 52616  17m  13m S  0.7  0.9   0:09.61 httpd
 1404 nobody    15   0 52276  13m 9300 S  0.7  0.7   0:09.16 httpd
 1550 nobody    15   0 78464  41m  11m S  0.7  2.1   0:13.62 httpd
 2307 nobody    16   0 51928  13m 9660 S  0.7  0.7   0:03.61 httpd
 2308 nobody    16   0 61480  22m 9488 S  0.7  1.1   0:05.89 httpd
 2321 nobody    15   0 52236  13m 9.9m S  0.7  0.7   0:05.59 httpd
 3676 root      16   0  2080 1104  740 R  0.7  0.1   0:00.09 top
 8862 nobody    15   0 58516  28m  18m S  0.3  1.4   1:27.19 httpd
31551 mysql     15   0 98972  75m 1996 S  0.3  3.8   0:29.77 mysqld
31671 mysql     16   0 98972  75m 1996 S  0.3  3.8   0:26.76 mysqld
 1074 nobody    15   0 52916  17m  12m S  0.3  0.8   0:09.23 httpd
 1075 nobody    15   0 54008  19m  13m S  0.3  1.0   0:13.76 httpd
 1456 nobody    15   0 52260  15m  11m S  0.3  0.8   0:05.25 httpd
 1812 nobody    15   0 54712  16m   9m S  0.3  0.8   0:05.64 httpd
 1813 nobody    16   0 52880  17m  12m S  0.3  0.9   0:06.62 httpd
 1864 nobody    15   0 52956  16m  11m S  0.3  0.8   0:06.37 httpd
 2303 nobody    15   0 61380  24m  11m S  0.3  1.2   0:05.95 httpd
 2311 nobody    15   0 53276  17m  11m S  0.3  0.8   0:07.27 httpd
 2328 nobody    15   0 52000  12m 8532 S  0.3  0.6   0:03.21 httpd
 3498 nobody    15   0 51136 6256 3180 S  0.3  0.3   0:00.30 httpd
 3678 nobody    15   0 50280 3528 1512 S  0.3  0.2   0:00.01 httpd
 3679 nobody    15   0 51256 6484 3280 S  0.3  0.3   0:00.12 httpd
 3683 nobody    15   0 50808 5720 3080 S  0.3  0.3   0:00.01 httpd
    1 root      16   0  1688  464  432 S  0.0  0.0   0:00.97 init


Logo à noite, quando estiver mais crítico, colocarei os dados dessa hora. :)

Citação de: "gaya"
Eu digo-te qual é o problema de graça. E nem preciso de ver.

Todos os sistemas quando crescem têm de levar marteladas para funcionar melhor. Provavelmente tudo se resolve vendo uma forma de passar para estatico coisas que estão na DB. Reduzindo esse trafego estupido que tens no MySQL.

É isso que vou fazer... conheço uma pessoa que domina o php-nuke e ofereceu-se para me ajudar a fazer uma limpeza ao codigo do site.
Espero que consiga ter resultados satisfatórios!
Se isto não resultar, talvez tente bloquear o site a todos os visitantes fazendo de forma a que apenas os utilizadores registados consigam ter acesso ao site. E como index fazia uma coisa simples a pedir para fazerem o registo e uma breve descrição sobre o conteudo do site. Aí já poupava bastantes querys! Visto que em 1.000 pessoas ligadas, uns 200 são membros e o resto é tudo guests!

Citação de: "asturmas"
Ou tambem apagar registos que nao sao uados podem ser 1ª boa forma..

Também já me sugeriram isso... Será que ter quase 100.000 registos, faz com que o site dê este tipo de problemas?
Será boa ideia eliminá-los então?

Citação de: "SlAiD"
Que tal fazeres um tweak ao my.cnf?

Pasta aqui o teu /etc/my.cnf e diz-me as configurações do server (ram TOTAL, PC, disco, tipo de páginas, SO, versões de software PHP e MySQL).

Já está feito :)


Citação de: "SlAiD"
Em relação a:
"À noite então é quase impossível abrir o site chegando o sql a ter mais de 200 acessos por segundo, o que dificulta a abertura da página. "
Vês isso atravez de 'mysql' e 'status'?
Já vi um VPS 1 dos meus (tiflotecnia.net) correr 250 processos pro segundo e a andar normalmente (load de 10/15, mas a abrir páginas em 7 segundos, o que é aceitável).
Se estás num dedicado e tens esse problema, deves ter sido roubado, ou não te entregaram um servidor bem configurado.

SL

Isso foi visto no Apache...
(Vê o top que postei acima acerca dos processos por seg.)

Roubado sei que não fui pois tenho total confiança a quem comprei o servidor :)
Offline

SSPT 
Membro
Mensagens 408 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Visto o problema ser definitivamente o mysql, penso que será uma boa ideia limitar o número de querys por segundo, provoca algum lag na abertura de paginas mas o servidor não crasha :)
Offline

gaya 
Membro
Mensagens 366 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Pondo de parte a parte de espancar o servidor até ele andar mais depressa, que seria inutil (embora muito divertido) tens mesmo de partir para a martelada.

Limitar guests é bom, mas o tio G não vai indexar o conteúdo no interior. Eu não sei qual é o forum nem qual o assunto. Mas se tiveres boas contribuições (bom conteúdo bem estruturado) aconselho-te a "promoveres" os bons posts a artigos e passa-los para fora do forum. assim minimizas as querys e mandas isco para o G papar que é um menino com munta fominha..