Depending on the flavor of Linux you are using, you may need to use a text editor to update the following file to increase the heap size.
/etc/sysconfig/elasticsearch
(uncomment the line 'ES_HEAP_SIZE=' and set this to half of the allocated virtual RAM for the VM)--Based on: https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html
I will caution you to read this as well afterwards if you see something like "Unable to lock JVM memory" in your elasticsearch application log after starting it up:
https://github.com/elastic/elasticsearch/issues/9357
I ran into problems myself with trying to use the environment variable method on Centos 6 and 7.
You may also want to try using the Kopf plugin (open source) to get some simple visibility:
https://github.com/lmenezes/elasticsearch-kopf
Using the following general instructions of course:
https://www.elastic.co/guide/en/elasticsearch/plugins/current/installation.html
If you don't know where certain things are located for elasticsearch on your system, please use the below defaults listing as guidance:
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-dir-layout.html
The root cause of the problem you are experiencing is most likely related to the startup script being used to bring up your instance of elasticsearch on the VM and it not utilizing the environment variable as expected. I hope you don't mind the extra information, I'm just trying to help you save some time.