Afaik, updating of smart groups can be triggered both by the cron job as described jitendra but also by many actions in CiviCRM. A large contact base and/or complex smart groups may lead to performance and deadlock problems and you also need to consider flushing the group cache. I would recommend to read this SE question and this blog post to understand CiviCRM's smart group behaviour a bit better.
A good approach could be to:
- Set smart_group_cache_refresh_mode=deterministic
- Set the smart group cache time in CiviCRM to 24 hours
- Configure the cron job to update the smart groups once per night
Make sure to test your settings if you want to rely on your groups.