Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何限制postgresql仅使用n个CPU核?_Postgresql - Fatal编程技术网

如何限制postgresql仅使用n个CPU核?

如何限制postgresql仅使用n个CPU核?,postgresql,Postgresql,我们如何限制postgresql只使用n个CPU核,而将其余的留给其他进程?例如,我有16个内核,我想将8个内核专用于postgresql,并保留其余8个内核用于其他服务。目前无法将postgresql服务器限制为可用CPU内核的子集,因为没有配置或机制来实现它。然而,可以利用NUMA来实现这一目标 简而言之,如果您的操作系统允许,您可以执行以下操作: numactl --hardware NUMA0_CPUS=”0-7” export CPUSET_HOME=$(mount | grep cp

我们如何限制postgresql只使用n个CPU核,而将其余的留给其他进程?例如,我有16个内核,我想将8个内核专用于postgresql,并保留其余8个内核用于其他服务。

目前无法将postgresql服务器限制为可用CPU内核的子集,因为没有配置或机制来实现它。然而,可以利用NUMA来实现这一目标

简而言之,如果您的操作系统允许,您可以执行以下操作:

numactl --hardware
NUMA0_CPUS=”0-7”
export CPUSET_HOME=$(mount | grep cpuset)
sudo mkdir $CPUSET_HOME/postgres
sudo /bin/bash -c "echo $NUMA0_CPUS >$CPUSET_HOME/postgres/cpus"
sudo /bin/bash -c "echo '0' >$CPUSET_HOME/postgres/mems"
sudo chown postgres $CPUSET_HOME/postgres/tasks
sudo su - $PGSERVERUSER
export CPUSET_HOME="<path where cpusets are mounted>"
echo $$ >$CPUSET_HOME/postgres/tasks
pg_ctl start <usual start parameters>
numactl——硬件
NUMA0_CPU=“0-7”
导出CPUSET_HOME=$(挂载| grep CPUSET)
sudo mkdir$CPUSET_HOME/postgres
sudo/bin/bash-c“echo$NUMA0\u CPU>$CPUSET\u HOME/postgres/CPU”
sudo/bin/bash-c“echo'0'>$CPUSET_HOME/postgres/mems”
sudo chown postgres$CPUSET_主页/postgres/tasks
sudo su-$PGSERVERUSER
导出CPUSET_HOME=“”
echo$$>$CPUSET\u主页/postgres/tasks
pg_控制启动

目前不可能将PostgreSQL server限制在可用CPU核心的子集内,因为没有实现它的配置或机制。然而,可以利用NUMA来实现这一目标

简而言之,如果您的操作系统允许,您可以执行以下操作:

numactl --hardware
NUMA0_CPUS=”0-7”
export CPUSET_HOME=$(mount | grep cpuset)
sudo mkdir $CPUSET_HOME/postgres
sudo /bin/bash -c "echo $NUMA0_CPUS >$CPUSET_HOME/postgres/cpus"
sudo /bin/bash -c "echo '0' >$CPUSET_HOME/postgres/mems"
sudo chown postgres $CPUSET_HOME/postgres/tasks
sudo su - $PGSERVERUSER
export CPUSET_HOME="<path where cpusets are mounted>"
echo $$ >$CPUSET_HOME/postgres/tasks
pg_ctl start <usual start parameters>
numactl——硬件
NUMA0_CPU=“0-7”
导出CPUSET_HOME=$(挂载| grep CPUSET)
sudo mkdir$CPUSET_HOME/postgres
sudo/bin/bash-c“echo$NUMA0\u CPU>$CPUSET\u HOME/postgres/CPU”
sudo/bin/bash-c“echo'0'>$CPUSET_HOME/postgres/mems”
sudo chown postgres$CPUSET_主页/postgres/tasks
sudo su-$PGSERVERUSER
导出CPUSET_HOME=“”
echo$$>$CPUSET\u主页/postgres/tasks
pg_控制启动

如果在姐妹网站上询问,您可能会想试试。这不是一个真正的编程问题。@BasilBourque,你是对的,但是关于postgres的stackoverflow还有很多其他问题,我认为在这里问这个问题是可以的。是的,当涉及一些编程时,和之间有一些重叠。但在你的问题中根本不涉及编程问题。在这里,管理服务器不是主题,而是属于姐妹站点。管理网络在这里是离题的,属于姐妹站点。管理数据库在这里是离题的,属于。您可能想试试,最好在姐妹网站上询问。这不是一个真正的编程问题。@BasilBourque,你是对的,但是关于postgres的stackoverflow还有很多其他问题,我认为在这里问这个问题是可以的。是的,当涉及一些编程时,和之间有一些重叠。但在你的问题中根本不涉及编程问题。在这里,管理服务器不是主题,而是属于姐妹站点。管理网络在这里是离题的,属于姐妹站点。管理数据库在这里是离题的,应该是。谢谢你的回答,但我认为pg_cGroup更简单,我可能会遵循这条路径。谢谢你的回答,但我认为pg_cGroup更简单,我可能会遵循这条路径。