Subject | Re: [firebird-support] High CPU use after restore |
---|---|
Author | setysvar |
Post date | 2015-10-28T17:43:03Z |
Hei Jardar, I have never even heard of Nortek before!
suspicious, and I agree that a restore being the cause doesn't make much
sense. And how did you restore your database? There ought to be some
free space on each page when restoring, I hope you didn't use the
-USE_ALL_SPACE option (unless the database is read-only). Has anything
else changed with the restore, e.g. the sweep interval (I don't know
where the sweep interval is stored, just that gfix can set it)? And are
there any queries being held open for a prolonged period that didn't
exist before?
GDB can matter since it is (or was?) monitored by Windows
(https://msdn.microsoft.com/en-us/library/aa378870(VS.85).aspx), making
Windows make a backup of the file when connecting. However, it is a long
time since I last heard of someone having an issue with this, and have
no clue whether or not it is still of importance with Win 2008.
Moreover, I presume you just restored the database, not reinstall Windows.
2.5.1 might or might not be OK, since it contains a bug regarding
multi-field indexes. Here's what I found in the release notes for 2.5.2
"Warning re Databases Created or Restored under Firebird 2.5.1
All users upgrading from Firebird 2.5.1 to a higher sub-release are
strongly advised to migrate databases using gbak backup/restore. If this
is impracticable, at least rebuild all compound indices in the databases
being migrated.
Databases being upgraded from older Firebird versions (ODS 11.1 and
lower) or v.2.5.0 are not affected by this regression."
We (Kreftregisteret) also use Fb 2.5.1 (or used, I wonder if we upgraded
to 2.5.3 or 2.5.4 a while ago), but we almost exclusively use single
field indexes and has never had serious problems caused by the bug (I
think I experienced duplicates with SELECT <FieldName1>, <FieldName2>,
COUNT(*) FROM <Table> GROUP BY 1, 2 due to this bug when we had a
combined index on FieldName1 and FieldName2 and one of the fields were
<NULL>, but am far from certain this bug was the culprit).
One "problem" with Firebird, is that one or two (very) bad queries can
be enough make everything come to a halt. However, this would only be
another random guess. What I would recommend you to try though, is to
run a query similar to SELECT * FROM MON$STATEMENTS WHERE MON$TIMESTAMP
IS NOT NULL ORDER BY MON$TIMESTAMP when things are slow. This could(*)
give you the queries currently running on the server and then you could
take the queries that ran when the problem manifested itself, prepare
them and see if the generated PLAN seems sensible or not. If you don't
find anything, well, then you've at least made bad queries less likely
to be your culprit.
HTH,
Set (Svein Erling)
(*) I know it gives me the queries, but my experience is exclusively
using SuperServer on smaller databases (up to just a few GB) and
normally connecting as SYSDBA.
>We have DB of about 40GB where transaction counter exceeded max and wehad to backup and restore to get the db back up an running.
>However after doing this we have had trouble where the DB consumes 25%CPU (100% on one core). This typically happens when accessing
>the DB from IIS web pages with quite a bit of transactions. Howevernormally this work very fine without this 100% CPU core load.
>surprised that this should happen after a restore.
>I find it hard to detect the real cause of the problem and also
>One thing to mention that after the restore I had to recreate storeprocedures and trigger. From documentation on web I got the
>impression that this was caused by a encoding issue of text.Did you modify the procedures/triggers at all? Recent changes would be
suspicious, and I agree that a restore being the cause doesn't make much
sense. And how did you restore your database? There ought to be some
free space on each page when restoring, I hope you didn't use the
-USE_ALL_SPACE option (unless the database is read-only). Has anything
else changed with the restore, e.g. the sweep interval (I don't know
where the sweep interval is stored, just that gfix can set it)? And are
there any queries being held open for a prolonged period that didn't
exist before?
>Another thing to mention is that we are running the DB on Win 2008Server and the fb version is 2.5.1. We also have the .GDB extension
>on the database, but since this has not been a trouble before, I doubtthat this is the problem.
GDB can matter since it is (or was?) monitored by Windows
(https://msdn.microsoft.com/en-us/library/aa378870(VS.85).aspx), making
Windows make a backup of the file when connecting. However, it is a long
time since I last heard of someone having an issue with this, and have
no clue whether or not it is still of importance with Win 2008.
Moreover, I presume you just restored the database, not reinstall Windows.
2.5.1 might or might not be OK, since it contains a bug regarding
multi-field indexes. Here's what I found in the release notes for 2.5.2
"Warning re Databases Created or Restored under Firebird 2.5.1
All users upgrading from Firebird 2.5.1 to a higher sub-release are
strongly advised to migrate databases using gbak backup/restore. If this
is impracticable, at least rebuild all compound indices in the databases
being migrated.
Databases being upgraded from older Firebird versions (ODS 11.1 and
lower) or v.2.5.0 are not affected by this regression."
We (Kreftregisteret) also use Fb 2.5.1 (or used, I wonder if we upgraded
to 2.5.3 or 2.5.4 a while ago), but we almost exclusively use single
field indexes and has never had serious problems caused by the bug (I
think I experienced duplicates with SELECT <FieldName1>, <FieldName2>,
COUNT(*) FROM <Table> GROUP BY 1, 2 due to this bug when we had a
combined index on FieldName1 and FieldName2 and one of the fields were
<NULL>, but am far from certain this bug was the culprit).
>What I have done so far is to:accessing the DB.
>* validate the db
>* run manual sweep on it
>* restarted fbserver
>* restarted server
>* restarted IIS
>
>Right now I am starting each of the websites/services that are
>potential fixes at "random".
>Any suggestions on how t
>feel like I am just guessing about the cause and applying different
One "problem" with Firebird, is that one or two (very) bad queries can
be enough make everything come to a halt. However, this would only be
another random guess. What I would recommend you to try though, is to
run a query similar to SELECT * FROM MON$STATEMENTS WHERE MON$TIMESTAMP
IS NOT NULL ORDER BY MON$TIMESTAMP when things are slow. This could(*)
give you the queries currently running on the server and then you could
take the queries that ran when the problem manifested itself, prepare
them and see if the generated PLAN seems sensible or not. If you don't
find anything, well, then you've at least made bad queries less likely
to be your culprit.
HTH,
Set (Svein Erling)
(*) I know it gives me the queries, but my experience is exclusively
using SuperServer on smaller databases (up to just a few GB) and
normally connecting as SYSDBA.