Sql server 2008 R2 memory is full and we are seeing this below error
continuously in the log file, even after every restart sql server goes in to recovery mode after that it will be fine and the memory will be full again in few hours, but >database is operational
There's a lot to unpack there.
Full memory: Make sure your max server memory is set correctly. Remember that SQL Server uses memory as a cache, so memory usage isn't a bad thing.
15 Second+ IO Messages: This is a warning to check your server setup and configuration, along with storage and any fabric in between. This means that SQL Server called the Windows APIs to read or write data, but after checking on the status of that request sees that it has no yet been completed. This is not a SQL Server issue, it's letting you know that you have other potential issues in your environment. If you're constantly seeing this, then the previously mentioned items need to be checked. For example, on a VM, an administrator can set IOP limits which can slow down and artificially limit IO.
SQL Server 2008R2: This is no longer supported. We all know it but I have to say it.
SQL Server has encountered 1 occurrence(s) of I/O requests taking longer than 15 seconds to complete on file [D:\SQLDATA\fff\cccc.ldf] in database [dd] (5). The OS file handle is 0x00000000000005C8. The offset of the latest long I/O is: 0x00000062bc6000
This is letting you know that at least 1 IO is taking longer than 15 seconds. It gives you the location of the file on disk and the offset of the operation inside of the file for different levels of possible troubleshooting. Please see what I wrote above. If SQL Server is pushing too much IO where the storage can't keep up with it (or there are other issues, like dropping packets on iscsi networks, etc.) then you can look at your queries and see if there are very large write operations that are causing the churn and see if you can tune those.
Doing things that cause more IO such as rebuilding indexes is only going to make things worse.