![Memória VPS esgotada mesmo com configurações de luz](https://rvso.com/image/568261/Mem%C3%B3ria%20VPS%20esgotada%20mesmo%20com%20configura%C3%A7%C3%B5es%20de%20luz.png)
Linux novato aqui. Eu tenho um VPS de 256 MB no servidor Ubuntu 11.04 e quando executo "free -m" o resultado mostra toda a memória sendo usada (incluindo a segunda linha re: buffers/cache). Achei isso muito estranho, considerando que só tenho 5 processos Apache em execução, cada um consumindo cerca de 20 MB cada. MYSQL está ocupando 30 MB. Que eu saiba, e de acordo com "top", não tenho outros devoradores de memória em operação.
Configurações que podem ser relevantes:
PHP memory_limit = 32M
MYSQL key_buffer = 16M
Prefork MPM Maxclients = 10
Então, quando revisei essas configurações, naturalmente pensei que maxclients estava muito alto, então tentei mudar para 5. Agora, não apenas minha memória ainda aparece como 100% usada, como meu site carrega muito, muito mais devagar, apesar de não receber nenhum tráfego além do meu no momento. Eu não entendo isso. Achei que um único processo Apache lidasse com todas as solicitações de um cliente recebidas na janela "KeepAliveTimeout", que defini para 2 segundos. Com minha configuração inicial. de 10 maxclients, o tempo de carregamento da minha página é de cerca de 0,3 ms, portanto, um único processo deve lidar com isso sem problemas, correto?
Em seguida, fui para um nível extremo de 1 para maxclients. Minha memória ainda está 100% usada e meu site carrega muito devagar. Eu sou um noob completamente perdido aqui. De acordo com os muitos tutoriais que li sobre configuração básica do servidor, devo estar pronto.
Ajuda! Por favor!
Edit:
total used free shared buffers cached
Mem: 256 256 0 0 0 0
-/+ buffers/cache: 256 0
Swap: 0 0 0
Responder1
Isso ocorre porque o Linux usa a maior parte da memória como cache e retorna partes dela conforme necessário para qualquer aplicativo executado.
Então não entre em pânico.Você está bem. Altere MaxClients de volta aos padrões.
EDIT: parece que você está rodando no OpenVZ. Veja a resposta de David Schwartz abaixo.
Responder2
Você não tem swap, o que torna muito difícil para o sistema operacional conservar a memória física. Basicamente, não há lugar para colocar dados que provavelmente nunca serão acessados, mas que não é possível provar que nunca serão acessados. Portanto, não há escolha a não ser mantê-lo na RAM.
Considere, por exemplo, um serviço que inicia quando o servidor é iniciado, mas que nunca é acessado. Ele pode estar vinculado a uma biblioteca que foi realocada. Essa realocação suja as páginas de código na memória. Na inicialização, provavelmente alocará alguma memória e modificará seu conteúdo. Com a troca, depois que o serviço não for executado por um longo período ou quando a memória estiver fraca, essas páginas podem ser removidas da memória e armazenadas na troca. (Provavelmente nunca será recuperado, mas o kernel não pode arriscar isso - considere um serviço como ssh
!)
Sem troca, o kernel não tem como remover páginas sujas, mesmo que elas não sejam acessadas há dias. Assim, a preciosa memória física fica cheia de lixo inútil.
Atualizar: Aparentemente, este é um artefato do OpenVZ. Há troca e os números de memória que você vê não têm sentido. Seus problemas de desempenho podem ou não ser causados por algo sob seu controle.