The block should naturally be filled up to take all the transactions that will fit and clear the miner's minimum fee setting.
If this doesn't seem to be happening, obvious things to check are:
- Are you sending it enough transactions fast enough to fill the block? It may be that your bottleneck is elsewhere than mining.
- If so is the miner getting them? See if they're queued in the miner's txpool. If not, you may be hitting some other limit - for instance, there is a limit to how many transactions will be accepted from the same address. See this answer for more information on restrictions on your txpool: What is the max size of transactions can clients like geth keep in txpool?
- Are you sending transactions with very high gas limits? If you have a gas limit of 5 million, and you've used 3 million so far, you won't be able to accomodate a transaction whose gas limit is greater than 2 milllion.