The current growth in Internet services, mobile devices, and machine-to-machine (M2M) technologies is providing the building blocks for the Internet of Things (IoT) as it is being applied across all industry sectors. With ongoing proliferation of IoT applications, a new platform called Fog/edge computing, in addition to Cloud computing, is being developed to address requirements such as bandwidth, latency and location awareness. As with previous many telecommunication systems, energy consumption concerns in IoT have been deferred to the point that it may become a bottleneck in the future. This work conducts a survey of existing literature addressing IoT energy consumption growth. We firstly highlight the factors and technologies in the system design, application layer and network virtualizations which lead to higher or lower energy consumption of an IoT service. Furthermore, we report strategies that can help to alleviate power consumption of IoT applications and services using Fog computing. Our objective is to provide a survey for network designers and policy makers who wish to gain an insight into deploying energy-efficient IoT applications.