mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
Create a distinct wait event for POSIX DSM allocation.
Previously we displayed "DSMFillZeroWrite" while in posix_fallocate(), because we shared the same wait event for "mmap" and "posix" DSM types. Let's introduce a new wait event "DSMAllocate", to be more accurate. Reported-by: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/20220711174518.yldckniicknsxgzl%40awork3.anarazel.de
This commit is contained in:
parent
712704d353
commit
7bae3bbf62
@ -1296,6 +1296,11 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser
|
|||||||
<entry><literal>CopyFileWrite</literal></entry>
|
<entry><literal>CopyFileWrite</literal></entry>
|
||||||
<entry>Waiting for a write during a file copy operation.</entry>
|
<entry>Waiting for a write during a file copy operation.</entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><literal>DSMAllocate</literal></entry>
|
||||||
|
<entry>Waiting for a dynamic shared memory segment to be
|
||||||
|
allocated.</entry>
|
||||||
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry><literal>DSMFillZeroWrite</literal></entry>
|
<entry><literal>DSMFillZeroWrite</literal></entry>
|
||||||
<entry>Waiting to fill a dynamic shared memory backing file with
|
<entry>Waiting to fill a dynamic shared memory backing file with
|
||||||
|
@ -364,7 +364,7 @@ dsm_impl_posix_resize(int fd, off_t size)
|
|||||||
*/
|
*/
|
||||||
PG_SETMASK(&BlockSig);
|
PG_SETMASK(&BlockSig);
|
||||||
|
|
||||||
pgstat_report_wait_start(WAIT_EVENT_DSM_FILL_ZERO_WRITE);
|
pgstat_report_wait_start(WAIT_EVENT_DSM_ALLOCATE);
|
||||||
#if defined(HAVE_POSIX_FALLOCATE) && defined(__linux__)
|
#if defined(HAVE_POSIX_FALLOCATE) && defined(__linux__)
|
||||||
/*
|
/*
|
||||||
* On Linux, a shm_open fd is backed by a tmpfs file. If we were to use
|
* On Linux, a shm_open fd is backed by a tmpfs file. If we were to use
|
||||||
|
@ -585,6 +585,9 @@ pgstat_get_wait_io(WaitEventIO w)
|
|||||||
case WAIT_EVENT_DATA_FILE_WRITE:
|
case WAIT_EVENT_DATA_FILE_WRITE:
|
||||||
event_name = "DataFileWrite";
|
event_name = "DataFileWrite";
|
||||||
break;
|
break;
|
||||||
|
case WAIT_EVENT_DSM_ALLOCATE:
|
||||||
|
event_name = "DSMAllocate";
|
||||||
|
break;
|
||||||
case WAIT_EVENT_DSM_FILL_ZERO_WRITE:
|
case WAIT_EVENT_DSM_FILL_ZERO_WRITE:
|
||||||
event_name = "DSMFillZeroWrite";
|
event_name = "DSMFillZeroWrite";
|
||||||
break;
|
break;
|
||||||
|
@ -178,6 +178,7 @@ typedef enum
|
|||||||
WAIT_EVENT_DATA_FILE_SYNC,
|
WAIT_EVENT_DATA_FILE_SYNC,
|
||||||
WAIT_EVENT_DATA_FILE_TRUNCATE,
|
WAIT_EVENT_DATA_FILE_TRUNCATE,
|
||||||
WAIT_EVENT_DATA_FILE_WRITE,
|
WAIT_EVENT_DATA_FILE_WRITE,
|
||||||
|
WAIT_EVENT_DSM_ALLOCATE,
|
||||||
WAIT_EVENT_DSM_FILL_ZERO_WRITE,
|
WAIT_EVENT_DSM_FILL_ZERO_WRITE,
|
||||||
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ,
|
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ,
|
||||||
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC,
|
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user