On 2/21/17, Kevin O'Gorman <kevinogorm...@gmail.com> wrote: > I'm not at all sure this is the right place to ask, but as it only comes up > when I'm running one of > my sqlite jobs, I thought I'd start here. I'm running Python 3.5 scripts > in Linux 16.04.1 using the sqlite3 package. Machine is Core i5, 32GB RAM. > > Some of my stuff takes a while to run, and I like to keep tabs on it. > Right now, I'm running one of those, and the Linux top command shows > extremely small CPU usage, and a status ("S" column) of "D" which the man > page defines as "uninterruptable sleep". Huh?
My guess: It is busying doing an fsync() after a transaction commit. To find out, temporarily set "PRAGMA synchronous=off" in your script and see if that makes the pauses go away. A better long-term solution would be: (1) Group multiple changes into a single transaction using BEGIN...COMMIT. (2) Set PRAGMA journal_mode=WAL with PRAGMA synchronous=NORMAL. > > My code does not use an intentional sleep at all. It's traversing parts of > a graph, and not interacting with anything else. As far as I know, anyway, > and I wrote the whole thing. > > Now it's true that it's updating the consequences of changes to graph nodes > that took about 3 hours just to install, so taking a while is not a > surprise by itself. I just wonder what that status means and how it could > arise. > > -- > word of the year: *kakistocracy* > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users