почему данные в phpmyadmim / vesta так отличаются?
Они не отличаются. Used = Использованная память, Free = сумма всего остального в phpmyadmin.
и нормально ли то что оно все закэшировано и свободного места по факту нет?
Нормально. Это настолько частый вопрос, что даже целый домен зарегистрировали для ответа: Help! Linux ate my RAM!
https://www.linuxatemyram.com/
Кратко: использование [почти] всей доступной памяти позволяет повысить производительность. Если не хотите, чтобы память была использована для оптимизации производительности, то просто не устанавливайте эту память в компьютер, положите её в тумбочку.