Qual tecnologia de virtualização você está usando? Com OpenVZ / Virtuozo, pelo menos, o comando 'free' não mostra sua memória real disponível. Muitas vezes, ele é muito maior do que a quantidade que é alocada em sua fatia VPS.
Além disso, existem vários limites diferentes de 'memória' que limitam diferentes tipos de memória (nos termos do OpenVZ eles são kmemsize, lockedpages, privvmpages, shmpages, vmguarpages, oomguarpages, etc).
Se você estiver usando o OpenVZ, marque / proc / user_beancounters para ver qual limite está atingindo, verifique na coluna 'failcnt'.