Asynchronous I/O in Postgres
От | Mladen Gogala |
---|---|
Тема | Asynchronous I/O in Postgres |
Дата | |
Msg-id | 4CAE6D12.9050301@vmsinfo.com обсуждение исходный текст |
Ответы |
Re: Asynchronous I/O in Postgres
|
Список | pgsql-novice |
Postgres 8.4 and 9.0 have the parameter named "effective_io_concurrency". The manual page is very short, it says the following: Sets the number of concurrent disk I/O operations that PostgreSQL expects can be executed simultaneously. Raising this value will increase the number of I/O operations that any individual PostgreSQL session attempts to initiate in parallel. The allowed range is 1 to 1000, or zero to disable issuance of asynchronous I/O requests. http://www.postgresql.org/docs/current/static/runtime-config-resource.html My initial understanding was that this was the size of the table, containing aiocb pointers, so that PgSQL can launch up to 1000 simultaneous aio_read or aio_write, per process. While monitoring the system, I noticed that there is no asynchronous I/O at all! Nothing, nada, zilch! Then I noticed that the "postgres" binary, is not even linked with libaio, so aio_read was out of the question: -bash-3.2$ ldd postgres|grep libaio -bash-3.2$ The platform is Postgres 9.0.1 on RH EL 5.5 x86-64. My understanding of the "effective_io_concurrency" was apparently very wrong. What is the "effective concurrency" and what are those "simultaneous I/O requests" that man page is talking about. Can somebody please define in precise terms what is it that this parameter defines? What kind of "concurrent I/O" is Postgres doing without asynchronous I/O calls? If this parameter is just a stub for the future reference, I'd like to know. Will Postgres use asynchronous I/O? Is that planned? -- Mladen Gogala Sr. Oracle DBA 1500 Broadway New York, NY 10036 (212) 329-5251 www.vmsinfo.com
В списке pgsql-novice по дате отправления: