You feel fatigued,
and have trouble sleeping but you've been hitting your workouts HARD. Maybe too hard. Working out hard is great, working out hard too often can actually undo what you're trying to do.
Without giving your body time to rest, it never has time to repair. It's in a constant state of stress and will put itself in over-drive to protect itself. Except this isn't ideal for strength or muscle growth. If you love to workout hard, go for it but give yourself enough rest. If you love to lift heavy, give yourself 1-2 days of rest between the heavy days. If you like to workout often, then do smaller muscle groups, less weight, or go for a shorter amount of time. You should have *at least* one full, do-nothing rest day, but 2 days off is even better.
Don't underestimate the power of REST to make huge gains.
photo credit: https://www.flickr.com/photos/istolethetv/3484457206/