Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.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
Linux 当我从scikit learn导入内容时,我有大量的上下文切换_Linux_Docker_Scikit Learn_Nomad - Fatal编程技术网

Linux 当我从scikit learn导入内容时,我有大量的上下文切换

Linux 当我从scikit learn导入内容时,我有大量的上下文切换,linux,docker,scikit-learn,nomad,Linux,Docker,Scikit Learn,Nomad,我们正在使用scikit学习查找类似的图像簇。我们希望有一个内部API,但当我们从scikit导入对象或使用它时,我们会得到大量的上下文切换 这些导入中的任何一个都会产生大量的导入: from sklearn.neighbors import NearestNeighbors from sklearn.externals.joblib import load from sklearn.decomposition import PCA from sklearn.externals import j

我们正在使用scikit学习查找类似的图像簇。我们希望有一个内部API,但当我们从scikit导入对象或使用它时,我们会得到大量的上下文切换

这些导入中的任何一个都会产生大量的导入:

from sklearn.neighbors import NearestNeighbors
from sklearn.externals.joblib import load
from sklearn.decomposition import PCA
from sklearn.externals import joblib
下面是重新启动程序期间的
vmstat1
输出

我们在导入前后添加了一些睡眠,并将大量上下文切换关联到这些行

但是,当我们在处理3GB近邻对象中的数字时,我们看到上下文切换的数量大幅增加

您完全可以发现我们发送给API的3个查询

以下是增长的预期:

def reduce_dimensions(self, dataset):
    return self.dim_obj.transform(dataset)

def get_closest_cluster(self, input_data):
    indexs_with_distance = self.cluster_obj.radius_neighbors(X=input_data, radius=self.radious, return_distance=True)
    return self.get_ordered_indexs(indexs_with_distance)
当我们在笔记本电脑上使用docker compose运行安装程序时,以及在nomad上使用docker运行安装程序时,都会发生这种情况。web应用程序由Flask编写,并由gunicorn提供

有没有办法告诉scikit使用这些上下文切换时要更加足智多谋

我们的管理员担心它会降低部署到相同节点的所有应用程序的性能


我们正在使用Python 3.6和scikit learn 0.19.1,尝试通过运行以下命令来限制进程可以使用的线程数:

OMP_NUM_THREADS=1 python run.py
请参见此处的完整说明: