Re: Drop in insert performance after 20ish seconds

Поиск
Список
Период
Сортировка
От Toni Alfirević
Тема Re: Drop in insert performance after 20ish seconds
Дата
Msg-id CAKHBNE1OUzFGd4ZfuCZGobyx3gL-tZG6+PSinzq2MKCWSAqVnw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Drop in insert performance after 20ish seconds  (Justin <zzzzz.graf@gmail.com>)
Ответы RE: Drop in insert performance after 20ish seconds  (Stephen Froehlich <s.froehlich@cablelabs.com>)
Список pgsql-novice
Justin,

yeah, I've run some basic system diagnostic and I haven't found anything suspicious.
1 core is being utilized around 50ish %.
RAM utilization is currently at around 6.5 GB / 8 GB utilization, but I'm assuming that's to be expected. Since my table grew to around 80 mil records and indexes are getting bigger.
DISK IO I haven't checked properly, yet. But at this point, I'm guessing my problem is somewhere else. 
Not sure if it's relevant but storage is SSD.

Following Stephen's suggestion, I'll try to modify my record inserting app to do EXPLAIN ANALYZE every x records and will get back to you. Maybe that will yield... Something.


On Tue, Feb 25, 2020 at 3:21 PM Justin <zzzzz.graf@gmail.com> wrote:
have you run any system monitor to see what the CPU, RAM and  DISK IO is doing,  something like TOP, or Glances

On Tue, Feb 25, 2020 at 9:16 AM Stephen Froehlich <s.froehlich@cablelabs.com> wrote:

This is a bit of a head-scratcher …

 

Usually one sees performance drop off once the index is so large that it can’t fit in RAM anymore, but that’s typically in the hundreds of millions to billions of rows.

 

It would help a lot if you could run EXPLAIN ANALYSE INSERT and post the results here …

 

https://www.postgresql.org/docs/current/sql-explain.html

 

--Stephen

 

 

From: Toni Alfirević <toni.alfirevic@gmail.com>
Sent: Tuesday, February 25, 2020 2:50 AM
To: pgsql-novice@lists.postgresql.org
Subject: Drop in insert performance after 20ish seconds

 

Hi,

 

I'm trying to gauge how PostgreSQL would perform on a specific VPS and for that purpose I've written a very simple console app that continuously inserts entries into one table.

 

CREATE TABLE public.pg_test_messages
(
    "Id" bigint NOT NULL DEFAULT nextval('"pg_test_messages_Id_seq"'::regclass),
    "Message" text COLLATE pg_catalog."default" NOT NULL,
    "TimeStamp" timestamp without time zone,
    CONSTRAINT "PK_pg_test_messages" PRIMARY KEY ("Id")
)

TABLESPACE pg_default;

-- Index: IX_pg_test_messages_Id

-- DROP INDEX public."IX_pg_test_messages_Id";

CREATE INDEX "IX_pg_test_messages_Id"
    ON public.pg_test_messages USING btree
    ("Id" ASC NULLS LAST)
    TABLESPACE pg_default;

 

 

And the behaviour I'm experiencing is as follows:

 

first 20ish seconds of inserts it takes avg. 650-700 ms to insert 1000 entries.

And after that insert performance drops to around 980-1000 ms to insert 1000 entries.

 

I've run numerous tests and this behaviour is consistent.

 

Since I'm not very familiar with all of the pgsql internal processes that are running my question is... 

Is this something that is normal and expected?

If it is, could you let me know what is this related to?

 

 

--

Toni Alfirevic



--
Toni Alfirevic

В списке pgsql-novice по дате отправления:

Предыдущее
От: Justin
Дата:
Сообщение: Re: Drop in insert performance after 20ish seconds
Следующее
От: Gerald Cheves
Дата:
Сообщение: Re: Unable to Connect to Server Error Help