Articles of 进程

python进程需要时间在nginx和uwsgi上运行的django项目中启动

我开始使用python的多处理模块进程。 这个过程由django项目发送的post请求调用。 当我使用开发服务器(python manage.py runserver)时,发布请求不需要任何时间来启动进程并立即结束。 我使用nginx和uwsgi部署了生产项目。 现在,当我发送相同的发布请求时,大约需要5-7分钟来完成该请求。 它只发生在我开始一个过程的那些post请求。 其他post请求正常工作。 什么可能是这个延迟的原因? 我该如何解决这个问题?

工头不能启动Nginx,但我可以手动启动它。 为什么?

我目前正在运行福尔曼 (Ubuntu),一旦我得到它的工作将切换到使用暴发户。 我的Procfile.staging看起来像这样: nginx: sudo service nginx start unicorn: bundle exec unicorn -c ./config/unicorn.rb redis: bundle exec redis-server sidekiq: bundle exec sidekiq -v -C ./config/sidekiq.yml 我可以使用以下方法成功启动nginx: $ sudo service nginx start 但是,当我运行$ foreman start ,而其他三个进程成功启动,nginx不: 11:15:46 nginx.1 | started with pid 15966 11:15:46 unicorn.1 | started with pid 15968 11:15:46 redis.1 | started with pid […]

从多进程泊坞窗容器logging

我正在使用链接到/ dev / stdout的nginx方法来处理任何我想出现在“docker logs”中的日志文件,但是这不起作用。 我已经用/ etc / crontab中的一个简单的cronjobtesting过了,如果符号链接存在(指向/ dev / stdout),它不会写任何东西(据我所知),但是如果我删除符号链接写入文件。 另外,如果我回声到/ dev /标准输出回显命令行上,但它不是在“docker日志”中find… 问题:这个应该工作吗? (这似乎与nginx一起工作)。 否则,我将如何从“二级”进程获取日志以显示在docker日志中。 对于ref: 显示符号链接方法的Nginx Dockerfile: https : //github.com/nginxinc/docker-nginx/blob/a8b6da8425c4a41a5dedb1fb52e429232a55ad41/Dockerfile 为此创build了一个官方错误报告: https : //github.com/docker/docker/issues/19616 我的Dockerfile: FROM ubuntu:trusty #FROM quay.io/letsencrypt/letsencrypt:latest # For testing ENV v="Fri Jan 22 10:08:39 EST 2016" # Setup the cronjob ADD crontab /etc/crontab RUN chmod 600 /etc/crontab # […]

php-fpm进程监视/分析

我最近遇到了一个php-fpm进程的使用问题(如活动进程的数量),以达到最大可用进程的高峰,并停止执行其他脚本,直到有问题的进程结束。 再详细一点,我目前的php-fpm设置是: pm = static pm.max_children = 100 我正在看php-fpm的状态页面,大部分时间显示: total processes: 100 idle processes: 95-99 active processes: 1-5 这是正常的。 但是,几分钟内,活动进程计数会跳到100几秒钟,然后回到1-5的正常状态。 在那个时候,在服务器上运行的所有其他脚本都停留了那段时间。 (从浏览器中,你只需看到等待的页面)。 现在,我已经检查了是否在特定的stream量高峰,但不是。 它也可以发生在当天最低的stream量。 我相信某个脚本,甚至可能只是在特定的情况下,导致PHP仅仅因为某种原因使用所有可用的过程。 一旦我们从5.2.X移动到PHP 5.4.X,就开始了这个问题 我们目前有大约60个网站,所以它很难通过每个网站的网页,并检查它。 在nginx日志中没有任何东西(无论如何,有一些Notices等)。 我想要做的是以某种方式跟踪/configuration文件/监视哪些php-fpm脚本正在使用的过程,所以我会知道从哪里开始寻找问题。 这可能吗? 也许有不同的方法? 更新 以下是1小时内以1分钟间隔计算的PHP-FPM过程的图表: 我用红色标出了我正在谈论的跳跃。 秒杀时的内存使用率保持不变

通过(f | v | s)scanf函数读取PHP_INT_MAX或接近值

我正在运行64位的Ubuntu Linux。 PHP也是64位的。 我正在尝试使用fscanf从文件中读取整数。 看来fscanf不能扫描超过32位的整数。 看示范波纹pipe。 var_dump( $a = PHP_INT_MAX, –$a, (string)$a, sscanf((string)$a, "%u"), PHP_INT_SIZE ); 产量 int(9223372036854775807) int(9223372036854775806) string(19) "9223372036854775806" array(1) { [0]=> string(10) "4294967294" } int(8) 看,64位整数algorithm的作品! 它只是sscanf函数不工作。 可能是我错过了一个适当的格式 。 我如何使用scanf读取PHP中的64位整数? 格式是什么?

监视一个进程(一切)

我想监视一个进程和它所做的一切(每一个信号都给SIGINT什么)。 有没有办法做到这一点? 我正在使用Linux(确切地说,Ubuntu 11)

ioctl命令从32位用户代码在64位系统中错误

我正在将设备驱动程序从32位RHEL 2.6.32升级到64位RHEL 2.6.33.9。 我有一个使用ioctl与该驱动程序交谈的程序。 当驱动程序和程序都是64位或32位时,它可以很好地工作。 但是,当驱动程序是64位,而我的程序是32位时,驱动程序接收到的ioctl命令(在compat_ioctl中)与_IOR和_IOWmacros定义的值不匹配。 在我的驱动程序switch语句中,默认情况下打印出所有有效命令的值,即1-12。 32位ioctl命令远不及那些值。 有人能告诉我什么会导致来自一个32位用户程序的命令在64位驱动程序接收时被搞砸了吗? 这里有一些代码:我必须input它; 该代码是在没有互联网访问的安全系统上,所以请原谅任何错误。 它实际上是确认和运行! // IOCTL commands from the include file – most omitted // … #define PORTIO_GET_IRQ_CNT_CMD 10 #define PORTIO_CLR_IRQ_CNT_CMD 11 #define PORTIO_GET_IRQ_TIME_CMD 12 #define PORTIO_IOCTL 'k' // magic number for ioctl // IOCTL Macros #define PORTIO_GET_IRQ_CNT_IOCTL _IOR(PORTIO_IOCTL, PORTIO_GET_IRQ_CNT_CMD, unsigned long) #define PORTIO_CLR_IRQ_CNT_IOCTL _IOR(PORTIO_IOCTL, PORTIO_CLR_IRQ_CNT_CMD, unsigned […]

Ubuntu 12.10 + Eclipse的3.8安卓设置为Android的问题

所以,我只是试图进入Android开发,并尝试使用Eclipse来设置我的系统,所以我可以通过教程和不熟悉的生态系统。 我使用Eclipse版本3.8在Ubuntu 12.10(amd64)上运行。 我遇到了一些问题/初始设置的问题,我不知道该怎么办… 1 – 我似乎没有得到“adb devices”命令来查看任何设备。 我有一个Verizon Galaxy Nexus和Nexus 7平板电脑连接到我的系统,没有看到任何东西。 我尝试在adb_usb.ini文件中添加一些供应商ID,但似乎没有办法。 我添加的两个ID是“0x4e41”和“0x18d1” – 我认为后者是“Google”设备ID,但我明显错误的地方。 2 – 我没有在“运行”button下configuration任何东西,我不知道如何通过AVD仿真器或通过设备configuration正在运行的应用程序。 我敢肯定,我不能通过我的设备运行任何应用程序,因为adb没有看到它们,但我确实有一个4.1 AVD设置,它应该能够运行任何创build的应用程序。 如何configuration“运行”button以通过模拟器推送应用程序? 它是否需要首先启动,或者它可以启动模拟器,并自动推送应用程序? 另外,一旦我解决了上面第一部分中的问题,我该如何configuration“运行”button将应用程序发送到我的设备? 任何/所有的帮助将不胜感激。 提前致谢。 编辑:作为两个评论,直到这一点已经提到使用运行菜单,但我似乎没有相同的运行菜单,你们中的任何一个。 我在运行菜单下的唯一的东西是 “外部工具”,然后下是 “运行”(这是一个没有任何东西的子菜单 – 我假设,因为我没有configuration任何东西), “外部工具configuration…” “组织collections夹…”。 我没有看到有关“运行configuration”的任何内容。 编辑2:我刚刚尝试添加在d.android.com“使用硬件”页面中提到的udev规则文件,并且似乎没有任何影响(即使重新启动后)。 仍然无法在“adb设备”中看到任何设备。 而且,是的,我的设备都打开了USBdebugging。 编辑3:似乎得到的设备显示在adb设备列表中,但仍然不知道如何将应用程序自动加载到它们。 此外,我试着运行http://developer.android.com/training/basics/firstapp/running-app.html上列出的“antdebugging”命令,我得到一个错误: Buildfile: build.xml does not exist! Build failed 不知道build.xml文件应该是什么,因为这应该是教程应用程序。

获取最高CPU使用率PID并将其输出到文件

我想统计CPU使用率,但我不想使用accton或任何其他软件。 只是脚本。 我可以使用top来获取最高CPU使用率或内存使用率的进程名称吗? 当我使用顶级-b时,我得到了很多无用的信息。

Java中的进程pipe理和EventWaiter

我将用Java实现一个小的守护进程应用程序。 以下是我的要求。 有人可以给我一些build议,如何做到这一点? 启动并监视另一个进程(如果发生崩溃,请重新启动) 在Windows和Linux上运行(SUSE是首选) 守护程序本身也不会退出,它应该在收到OSclosures信号时正常退出。 对于Windows,我可以调用多个Win32 API来启动进程并监视其状态。 守护程序应用程序可以是一个Windows服务,其生命周期由Windows自动pipe理。 问题是,如何对付Linux。 此外,如何编写一套代码来处理这两个操作系统,而不是两个?