Re: Script to compute random page cost
От | Tom Lane |
---|---|
Тема | Re: Script to compute random page cost |
Дата | |
Msg-id | 13844.1031605776@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Script to compute random page cost ("Nick Fankhauser" <nickf@ontko.com>) |
Ответы |
Re: Script to compute random page cost
|
Список | pgsql-hackers |
"Nick Fankhauser" <nickf@ontko.com> writes: > I bounced these numbers off of Ray Ontko here at our shop, and he pointed > out that random page cost is measured in multiples of a sequential page > fetch. It seems almost impossible that a random fetch would be less > expensive than a sequential fetch, yet we all seem to be getting results < > 1. I can't see anything obviously wrong with the script, but something very > odd is going. The big problem with the script is that it involves an invocation of "dd" - hence, at least one process fork --- for every page read operation. The seqscan part of the test is even worse, as it adds a test(1) call and a shell if/then/else to the overhead. My guess is that we are measuring script overhead here, and not the desired I/O quantities at all --- the script overhead is completely swamping the latter. The apparent stability of the results across a number of different platforms bolsters that thought. Someone else opined that the script was also not comparing equal numbers of pages read for the random and sequential cases. I haven't tried to decipher the logic enough to see if that allegation is true, but it's not obviously false. Finally, I wouldn't believe the results for a moment if they were taken against databases that are not several times the size of physical RAM on the test machine, with a total I/O volume also much more than physical RAM. We are trying to measure the behavior when kernel caching is not helpful; if the database fits in RAM then you are just naturally going to get random_page_cost close to 1, because the kernel will avoid doing any I/O at all. regards, tom lane
В списке pgsql-hackers по дате отправления: