GC s1 always used 100%, never less than 100%

I think this is a visualization problem of jstat. The G1 heap layout is quite different to heap layouts of previous garbage collectors and the jstat tool seems not to have been adapted.

If you want to analyze GC behavior the better option is to enable GC logs and to look at them instead. If you are interested in detailed information about region sizes you can turn add -XX:+PrintHeapAtGC to your JVM options.

For a more thorough explanation of how G1 works, you can watch e.g. the following video by Monica Beckwith: