Postgresql süreç yumurtlayan PHP komut dosyası tarafından kontrol edilebilir kökenli miyim?

2 Cevap php

Ben Postgresql veritabanındaki bir tabloya içeriğin ekleyerek, bir csv dosyası işler bir PHP CLI komut dosyası var. Bu Ubuntu sunucu üzerinde. Ben tüm senaryonun afinite kontrol etmek schedtool kullanın. Schedtool-e seçeneği ile komut kendisi başlatmak için kullanılır. Ne yazık htop ile ben veritabanı iplik tamamen farklı bir iş parçacığı olarak kökenli ve afinite seçenekleri etkilenmez varlık görüyoruz.

Bu şekilde veritabanı işlemi yumurtlayan PHP script tüm yakınlık seçenekleri devralır yapmak mümkün mü?


Ben sadece Ruby :) bazı Postgresql örnek dosyalarını okuyor cevap-olarak bulduk.

My best choice would be to get the very exact PID of the Postgresql thread that is running the current script, with NOTIFY - LISTEN. As [depesz] told Postgres uses only 1 core. With schedtool I still can control on which core it runs and with cpulimit I can control it further.

2 Cevap

Postgres Konu kullanmaz. Her bağlantı bir tek dişli süreç tarafından işlenir. Yani, tek bir bağlantısı sadece tek bir çekirdek kullanabilirsiniz. OS farklı çekirdek taşımak olsa, sadece bir seferde birini kullanmak olacaktır.

Eğer nicing Postgres ısrar ederse, herhangi NOTIFY'dır / DİNLE şeyler olmadan postgres sürecin PID verecektir ") (pg_backend_pid SEÇ". Rağmen, genel olarak, güzel bir postgres sürecine denemek istemiyorum. Sen diğer yüksek öncelikli süreçler engellemesine neden olabilir. Sonra ne düşündüm düşük bir öncelik işlemi çok düşük öncelikli bir daha değil idi.

Eğer sadece komut nicing csv gelen ekler, bir sürü yapıyorsanız muhtemelen çok yardımcı olmayacaktır. Postgres muhtemelen işin daha yapıyor, ve bu yüzden daha nicing çok teşekkür alamayabilirsiniz, muhtemelen IO bulunuyor. Ancak, her seferinde bir süre uyku olabilir. , 50 milisaniye, bir süre için uyku için insert ...

Hayır.

Postgres arka uç hep postmaster sürecinden olurken, bu yüzden postgres arka uç için afinite (olurdu ne olursa olsun) php script seçenekleri geçmek için hiçbir yolu yoktur.

Diğer taraftan - genel bir çözüm olduğunu aslında, orada olmadığı anlamına gelmez - sen ve sen setup / geçmek istediğiniz seçeneklerin ne tür, belki bir çözüm var afinite tarif edersen bazı şeyler için özel bir çözüm.