Setting a cap on immigration sounds a right thing to do. It would allow the government to manage, in orderly fashion, immigration issues and social problems naturally arise later on.
The ratio doesn't have to be 3% forever. It can be adjusted in the future. It could be 5%, 10%, whatever, if the society needs more people from outside. The problem is that once you accept immigrants, you cannot easily extradite them even if you realize something is gone wrong with the policy.