Nginx 如何使UNIX套接字更快?
我正在运行一个谷歌云计算虚拟机作为我的应用服务器,这个应用程序可以在iOS和Android上使用。服务器在uWSGI中运行Django,前面是nginx。uWSGI和nginx之间的通信通过unix文件套接字进行 最近我开始注意到客户端超时。我做了一些实验,发现uWSGI在向文件套接字写入数据时有时会出错。当我在客户端增加“max time”参数时,它会顺利通过。例如,一个返回大约200KB json数据的示例请求,Django需要大约1秒的时间来计算。但是UNIX套接字似乎需要1-2秒,对于200KB的响应来说,这似乎太高了。如果客户端希望在2秒内收到响应,这通常会导致uWSGI出现写入错误(如下面的屏幕截图所示)。当我在客户端增加超时时,它会顺利通过 我想知道是否有一些配置更改可以加快UNIX套接字的读写速度。200KB对于来自我的服务器的JSON响应来说是一个非常小的大小,所以我无法将其降低。出于商业原因,我的客户端(iOS或Android)的超时时间不能超过2秒Nginx 如何使UNIX套接字更快?,nginx,uwsgi,unix-socket,Nginx,Uwsgi,Unix Socket,我正在运行一个谷歌云计算虚拟机作为我的应用服务器,这个应用程序可以在iOS和Android上使用。服务器在uWSGI中运行Django,前面是nginx。uWSGI和nginx之间的通信通过unix文件套接字进行 最近我开始注意到客户端超时。我做了一些实验,发现uWSGI在向文件套接字写入数据时有时会出错。当我在客户端增加“max time”参数时,它会顺利通过。例如,一个返回大约200KB json数据的示例请求,Django需要大约1秒的时间来计算。但是UNIX套接字似乎需要1-2秒,对于2
几个unix实体由文件表示,但根本不是文件。管道和套接字是由非文件文件表示的实体的示例 因此,从unix套接字进行写入和读取不会绑定到文件系统I/O,也不会共享文件系统时间响应。事实上,unix套接字是IPC最快的方式之一,比TCP套接字更有效,因为它根本不使用网络I/O 尽管如此,以下是一些关于如何解决您的特定问题的提示:
祝你好运 第一步是以最佳方式配置uWSGI,因为这是向套接字写入和从套接字写入。根据负载和系统架构,您可能希望运行多个线程或多个uWSGI工作线程。接下来,您将告诉Nginx使用epoll或类似的东西,并配置您的uwsgi参数,例如keep_alive、超时、缓冲区、send_文件块大小等。