Estou executando dois servidores no Rackspace Cloud One para o aplicativo da Web e um para as instâncias de db e redis. O servidor web possui 1Gb de ram e single core. Nginx senta-se na frente do unicórnio que está executando 2 trabalhadores. Eu também tenho uma instância sidekiq em execução. Essa configuração funciona muito bem e os servidores geralmente vibram com uma CPU muito baixa, pois o aplicativo ainda não foi lançado.
No entanto, quando eu faço um reinício de unicórnio, muito menos um aplicativo completo, todo o inferno se solta. Parece algo como isto:
Basicamente,meuservidoréeliminadopor3minutos.Éumpoucoresponsivoàsvezes,masomonitoramentoestáacionandoalertasdetempodeinatividadeemtodoolugar(issoéapenasumareinicializaçãocomtempodeinatividadezero).
Seeufizerumaimplantaçãocompleta,ográficoterácercade8minutos,mesmoqueeuestejapré-compilandorecursosefazendoupload,portanto,nãohácompilaçãonoservidor.
AparteinteressanteparamiméquetenhoumaconfiguraçãodeservidorduplicadaexataemexecuçãonoDigitalOcean.Eupossoreiniciarcompletamentetodooservidorshutdown-r
eficaremcimaeservirpáginasem50segundos.ComesteservidorRackspace,eunãooreinicionemmesmoparatestar,poisissomedariatempodeinatividademuitosignificativoparaumservidordeprodução.
EunãosouumadministradordeservidoresLinux,entãoestoupensandoseaspessoaspodemmedizerseissoéválidoparaocursocomservidoresemnuvemdaRackspace.EutiveumadécadadeexperiênciaexecutandoalgumascaixasdedicadasdoWindowsenuncativeproblemascomoeste.
hdparmcontraosservidores.
Rackspace:
$sudohdparm-Tt/dev/xvdc/dev/xvdc:Timingcachedreads:5066MBin1.99seconds=2541.54MB/secTimingbuffereddiskreads:238MBin3.00seconds=79.32MB/sec
DigitalOcean
$sudohdparm-Tt/dev/vda/dev/vda:Timingcachedreads:15612MBin1.99seconds=7828.02MB/secTimingbuffereddiskreads:1416MBin3.00seconds=471.89MB/sec
Obviamente,oservidorDOestásuperandooservidorRSporumamargemsignificativa.Curiosamente,oservidorDOestárealmentepreparandodoisaplicativos,entãoestáfazendomaistrabalhodoqueoRSone.Ambososhdparmssãoexecutadoscomacargadoservidorsobreomesmo(ouseja,muitopouco).Estavelocidadedediscoépuramentelentaouháalgomaisacontecendoaqui?
superiorparaosdoisservidores
Rackspace
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND9832xxxxxxxx200525m214m4372S0.021.61:31.61ruby9829xxxxxxxx200443m205m3312S0.020.61:27.67ruby15597xxxxxxxx200554m176m1268S0.017.84:59.36ruby9780xxxxxxxx200443m63m1088S0.06.40:28.80ruby787root200193m17m2608S2.01.7350:43.06driveclient1556xxxxxxxx2007787611m1020S0.01.118:54.78remote_syslog17415root2007309633642608S0.00.30:00.03sshd
OceanoDigital
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND20921xxxxxxxx200240m191m5328S0.019.10:29.62ruby21009xxxxxxxx200204m178m5356S0.017.80:20.82ruby21194xxxxxxxx200204m174m1724S0.017.40:00.10ruby21206xxxxxxxx200204m174m1656S0.017.40:00.10ruby21181xxxxxxxx20098.3m89m2184S0.38.90:03.04ruby1426xxxxxxxx200117m40m2272S0.04.11:09.02ruby1429xxxxxxxx200117m29m2180S0.03.01:09.64ruby1422xxxxxxxx200117m46521172S0.00.50:08.08ruby22066xxxxxxxx200718834561512S0.00.30:00.09bash22008root2001000833202664S0.00.30:00.03sshd
DevoestarabandonandooRackspace?
Editar:Implantargráfico(excluindoouploadeadescompactaçãodearquivosderecursospré-compilados)
Editar: vmstat
$ vmstat -S M 1 10
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 380 67 13 109 4 4 13 10 10 17 1 1 97 0
0 0 380 67 13 109 0 0 0 0 650 1011 0 1 99 0
0 0 380 67 13 109 0 0 0 0 675 1008 0 1 99 0
0 0 380 67 13 109 0 0 0 0 659 1009 0 0 100 0
1 0 380 67 13 109 0 0 0 68 661 1027 0 0 99 1
0 0 380 67 13 109 0 0 0 0 667 1014 0 0 100 0
1 0 380 67 13 109 0 0 0 0 671 1016 1 0 99 0
0 0 380 67 13 109 0 0 0 0 668 1008 0 0 99 0
0 0 380 67 13 109 0 0 0 0 671 1022 0 0 100 0
0 0 380 67 13 109 0 0 0 0 783 1112 9 3 89 0