QuiteRSS / quiterss

Free news feeds reader
https://quiterss.org
Other
1.01k stars 123 forks source link

Keeping big database in memory by default significantly affects SSD life #1039

Open Fixer-007 opened 6 years ago

Fixer-007 commented 6 years ago

I was doing some research on program writes across Windows and noticed that QuiteRSS with "keep db in memory" (it is on by default) writes ridiculous amount of data to disk in my case (46 feeds), I have 300mb database, so it writes 600mb for each maximize/hiding of Quiterss window to systray and probably each 30 minutes, if you are heavy QuiteRSS user on SSD, it will put really heavy burden on it.

Disabling "db in memory" stops this, resulting in very little writes to disk, but slower operation on classic HDD, but good enough on SSD.

Is there any mitigations for this?

  1. Stop dumping entire database each time you hide QuiteRss into systray
  2. Detect SSD and autodisable that "keep db in memory" since read/write speed is very good on SSD
  3. Disable "keep db in memory" by default for everyone
  4. Add a tooltip for this option saying "Disable if you have SSD"
  5. Add SSD discoverable mode button in menu that turns off "keep db in memory"
  6. If "keep db in memory" is enabled, increase default "db dump to disk" time from XX to 60 min (at least)
Black3ird commented 6 years ago

I can't agree with your negative suggestions for "keep db in memory" as it was supposed to help SSD live longer and if it's "not" doing this now, the "mechanism" should be fixed (db should always be in memory and dump at predefined long intervals OR only at program close), not the options you suggested. This eliminates your options "2 through 5" leaving only option 1 "Stop Dumping" as the most viable option.

Currently I have over 10,000 unread articles (for different purpose) and a feeds.db filesize around 50 Mb yet never noticed such and will keep an eye out for what you've experienced. Also what program you use to "watch" file activities can differ what you observe. As an example among others, the program https://www.nirsoft.net/utils/file_activity_watch.html reported me that whatever you chosen in options (even without opening/changing options), QuiteRss.ini file got deleted and rewritten "every minute" even if how small that file is and also causes constant wear on a SSD drive.

Until these kind of SSD considerations are fixed I can advise you to use a "RAMDisk" and redirect all such kind of problematic applications and file/folders to that RAMDisk, if possible dynamically so it won't eat your memory. I've been doing this for quite some time and especially with Browsers' Cache directories on RAMDisk which eased my SSD burden quite a lot.

TL;DR: I agree in the least that QuietRSS could handle file operations with SSD in mind since it's getting more and more common.

Fixer-007 commented 6 years ago

Here is how I work arounded this problem for now:

I've reduced my db size from 300mb to 25mb and it works fine for now, Fix is still needed for this issue.

Also what program you use to "watch" file activities can differ what you observe.

Windows' Task Manager can do the task, in the option add "Bytes written" column, other tools I've used confirmed its accuracy more or less.

mailinglists35 commented 5 years ago

hi, can you add option to keep some feeds longer and some feeds less time in archive? I have some feeds that I don't need more than 3 days back (google world news for example) but at the same time I have a low volume internal company feeds that I can keep at default time of 30 days. currently with default options quiterss is consuming 1Gb of ram which is quite huge... https://i.imgur.com/7gGZv93.png https://i.imgur.com/6gsRWVN.png

FreePlague commented 3 years ago

Same behavior at latest version 0.19.4 Saving all database each time minimizing program is giant BUG Unfortunately discovered this only recently when I was investigating excessive disk writes from another program

morfikov commented 9 months ago

I've also hit this issue on my Debian linux (quiterss ver. 0.19.4+dfsg-1). I accidentally noticed that each time I minimize quiterss to tray, it writes lots of data to the disk. But this happens only then I minimize the window to tray or close it to tray. I also had this "keep db in memory" option enabled, because I thought it does what it says, but I see that quiterss writes around 6GiB data to disk everyday. I unchecked the option, and now I see only small writes around 20-50KiB/s for some secs.