我上传了大约200,000个文件(每个文件最大大小约为1MB)到EC2实例(在西欧)的S3存储桶中。 从使用CloudWatch监控EC2(查看NetworkOut指标)来看,随着时间的推移,上传传输似乎有所下降: 我分几次上传文件,通常在四五个小时之后(但有时候会更快),下载似乎是一致的。 这些文件是用一个Python脚本上传的: 从第三方服务器下载.zip 从.zip中提取大约25个文件,并对每个文件进行gzip压缩 将.gzipfile upload到存储桶 我已经尝试了两种上传.gzip文件的方法… 依次使用boto3: boto3.client("s3").upload_file(file.gz, bucket, file.gz) 将AWS CLI作为subprocess运行,一次上传25个.gzip文件 …但是我看到每种方法都有同样的下降。 什么可能导致这个? 或者我应该收集哪些信息来进行debugging? 编辑 下面是同一时期的图表,显示了BurstBalance指标(EC2实例是t2.small): 这是CPUCreditBalance :
我遇到了mod_python和Apache的问题,我很确定我知道问题是什么,但是我想要一点保证。 我现在有一个情况,我正在与一个非常小的VM只有256M的RAM工作。 现在MySQL和Apache运行得相当好,一切都很好,直到我开始交换,我显然希望尽可能避免交换。 有了那么小的内存,虽然这是不可能的。 我select每天重新启动MySQL和Apache几次,但是,大约4-5天后,我收到设备上剩余的磁盘空间: [Mon May 11 06:00:14 2009] [notice] caught SIGTERM, shutting down [Mon May 11 06:00:20 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Mon May 11 06:00:20 2009] [notice] Digest: generating secret for digest authentication … [Mon May 11 06:00:20 2009] [notice] Digest: done [Mon May 11 06:00:21 2009] [notice] mod_python: Creating […]
我有一台运行在Ubuntu 10.04上的服务器,我想通过它来安装Mercurial % sudo apt-get install mercurial 它似乎已经成功安装,不会显示任何错误消息。 但是当我尝试它时,我得到: % hg abort: couldn't find mercurial libraries in [/usr/bin /usr/lib/python2.6 /usr/lib/python2.6/plat-linux2 /usr/lib/python2.6/lib-tk /usr/lib/python2.6/lib-old /usr/lib/python2.6/lib-dynload /usr/lib/python2.6/dist-packages /usr/lib/pymodules/python2.6 /usr/local/lib/python2.6/dist-packages] (check your install and PYTHONPATH) 我已经search了一段时间,发现一些网站有同样的问题,但我仍然不知道如何解决这个问题,因为它没有真正说明我需要寻找什么,或者我需要添加到我的PYTHONPATH中。 顺便说一句,现在我的PYTHONPATH似乎是空的: % echo $PYTHONPATH % 这是我得到,如果我看着我的/ usr / lib /目录中的mercurial: % find /usr/lib/py* -name 'mercurial*' /usr/lib/pymodules/python2.6/mercurial /usr/lib/pymodules/python2.6/mercurial-1.4.3.egg-info /usr/lib/pyshared/python2.6/mercurial 有人可以帮我吗? 我应该如何设置我的PYTHONPATH? 我已经尝试重新安装,使用“easy_install mercurial”或“aptitude重新安装mercurial”安装,但没有任何帮助。 我总是得到这个相同的错误。 […]
我有一个使用Nginx和Gunicorn的Django应用程序“djngxgun”。 我只是安装了主pipe,以便我可以使用它来pipe理我的Gunicorn进程。 问题是Supervisor在重新启动服务器后没有启动Gunicorn。 当我通过Supervisor启动Gunicorn(“sudo supervisorctl start djngxgun”)时,我看到在我的Gunicorn error.log文件中重复出现以下错误: 2014-02-28 15:36:47 [4753] [INFO] Starting gunicorn 18.0 Traceback (most recent call last): File "/home/djngxgun/venv/djngxgun/bin/gunicorn", line 9, in <module> load_entry_point('gunicorn==18.0', 'console_scripts', 'gunicorn')() File "/home/djngxgun/venv/djngxgun/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 71, in run WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() File "/home/djngxgun/venv/djngxgun/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 143, in run Arbiter(self).run() File "/home/djngxgun/venv/djngxgun/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 172, in run self.start() File "/home/djngxgun/venv/djngxgun/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line […]
我正在开发一个“本地”PHP项目。 这是一个在Debian VM中运行的PHP应用程序,用于用户自己的PC上。 我有一些从/etc/init.d作为根服务运行的python脚本,它们负责处理应用程序更新,日志,与USB外围设备的通信以及杂项。 编辑1:该VM是一个Turnkey Linux LAMP映像,Python版本是2.7.3,MySQL 5.5.47 PHP应用程序通过TCP套接字与python服务对话,发送用户需要的特定任务的请求。 现在,我试图让用户select让MySQL服务器只绑定到本地主机还是与networking上的其他用户共享。 为此,我有python服务通过my.cnf文件,并注释掉bind-address = 127.0.0.1行,或者取消注释,使服务器再次本地。 在my.cnf编辑之后,python脚本调用/etc/init.d/mysql restart以使更改生效。 问题是,现在mysql最终收听了python服务正在侦听的PHP请求的端口,如果我需要重新启动服务Python失败,声称它不能打开端口,因为它已经被使用了。 我无法弄清楚为什么地狱会最终在Python服务使用的端口监听,而不是如my.cnf文件所说的3306。 另外,如果我ssh到虚拟机,并手动重新启动mysql它回到侦听3306,我可以启动python服务确定。 python一些代码: RECV_BUFFER = 4096 DAEMON_PORT = 5555 daemon_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) daemon_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) daemon_socket.bind(("localhost", DAEMON_PORT)) daemon_socket.listen(10) //// SOCKET HANDLING, QUEUE and etc if (data =='share:enable'): import fileinput import re import subprocess for line in fileinput.input('/etc/mysql/my.cnf', inplace […]
我的networking上有一个Microsoft Virtual PC实例,它运行构build脚本并通过向我发送电子邮件报告问题。 我不是在运行什么机器! 我可以通过远程桌面访问机器,但我不知道如何从中解决主机问题。 我将来真正喜欢的是将主机名称包含在自动电子邮件中。 所以我有两个问题: 1)如果您login到虚拟PC,有什么办法找出主机的身份? 2)如果问题1的答案是肯定的,那么从Python脚本自动查找主机最简单的方法是什么?
CentOS 5.4自带了Python 2.4标准。 百胜似乎并不知道python 2.6。 什么是安装Python 2.6的最佳方式,所以它将可用于脚本和Apache HTTPd而不会破坏其他任何东西?
这只是一个小小的问题,但我想知道是否有人能告诉我这个原因 – 当我重新启动apache时,这些行会写入/var/log/apache2/error.log [Thu Mar 24 10:20:56 2011] [warn] mod_wsgi: Compiled for Python/2.6.5. [Thu Mar 24 10:20:56 2011] [warn] mod_wsgi: Runtime using Python/2.6.6. [Thu Mar 24 10:20:56 2011] [notice] Apache/2.2.16 (Ubuntu) mod_wsgi/3.2 Python/2.6.6 configured — resuming normal operations 我如何解决这个问题? 我是不是该?
我接触到亚马逊AWS产品,请在高层解释这一点 – 如果我认为是正确的。 所以我的本地机器上有很less的Python抓取脚本。 我想使用AWS进行超快速的互联网连接和更便宜的价格 – 赢/赢! 我知道我可以在EC2上部署一个centOS / Ubuntu实例。 安装必要的Python库。 使用boto(Python)启动和停止实例以节省成本。 我到目前为止是否正确? (可行吗?) 我会CRON的一些脚本,将开始抓取(抓取)的HTML文件进行parsing。 所以这些HTML文件被复制到S3进行存储(或者我应该将它们转储到我的本地机器,因为这是我将如何parsing和存储在MySQL?)。 请告知,如果我对自己的假设有所了解,以及我对AWS几乎没有任何阅读/search服务的知识,
我有一个网站的example.com,运行了一个“正常”的networking服务器,即在目前的Apache,但在未来寻找内存密集的替代select,所以我不希望Apache上的mod_WSGI。 不久,我将要部署一个用python应用服务器运行的web应用程序。 我想这个回答所有的请求example.com/reallycoolpythonwebapp/与Web服务器照顾其余的。 这样的架构是如何创build的? 我期待指向相关的在线文档赞赏。