When executing lsof command it giving 26k files on server.
It seems unlikely that you have 26K distinct .ttf
font files on the system.
This suggests that you open the same .ttf
font multiple times, or that you are leaking file descriptors.
You should definitely fix the FD leak (if there is one) -- no amount of manually closing FDs is going to let the server work -- it will simply run into the same problem after a while.
For the "open the same file many times", the usual solution is to introduce a font cache -- before opening a file, check the font cache and use data from it if it's already been opened. This may increase memory consumption, but eliminate the "open many times" problem.
Memory consumption could be managed (if necessary) by using appropriate cache expiration policy.