Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
(AWS)如果没有足够的CPU,python脚本会发生什么?_Python_Amazon S3_Amazon Ec2 - Fatal编程技术网

(AWS)如果没有足够的CPU,python脚本会发生什么?

(AWS)如果没有足够的CPU,python脚本会发生什么?,python,amazon-s3,amazon-ec2,Python,Amazon S3,Amazon Ec2,我的小AWS EC2实例运行两个python脚本,一个作为web套接字(~2msg/ms)接收JSON消息并写入csv文件,另一个用于压缩和上载csv。经过测试,EC2实例记录的数据(~2.4gb/天)比我自己的计算机(~5GB)记录的数据要少。监视显示EC2实例消耗了所有CPU点数,并且正在使用基线电源运行。我的问题是,实例是否因为写消息速度不够快而丢弃消息 感谢所有能够提供任何见解的人 这取决于WebSocket服务器。 如果您的第一个脚本运行速度不够快,无法与服务器端的消息生成速度相匹配,

我的小AWS EC2实例运行两个python脚本,一个作为web套接字(~2msg/ms)接收JSON消息并写入csv文件,另一个用于压缩和上载csv。经过测试,EC2实例记录的数据(~2.4gb/天)比我自己的计算机(~5GB)记录的数据要少。监视显示EC2实例消耗了所有CPU点数,并且正在使用基线电源运行。我的问题是,实例是否因为写消息速度不够快而丢弃消息


感谢所有能够提供任何见解的人

这取决于WebSocket服务器。

如果您的第一个脚本运行速度不够快,无法与服务器端的消息生成速度相匹配,则TCP接收缓冲区将变满,服务器发送数据包的速度将减慢。假设消息生成率接近恒定,未处理的消息将堆积在服务器上,服务器可以对其进行编码,使其累积或最终丢弃

即使服务器从未丢弃过消息,如果没有足够的计算能力,您的实例也永远赶不上-在8月15日,它可能正在处理8月10日的消息-因此需要升级实例

一天中的数据传输速率是否变化很大(例如,晚上20:00左右的高峰时间会有更多的消息)?如果是这样,数据丢失可能发生在该期间


但是Python真的那么慢吗?5GB/天每秒不到100KB,即使是一个现代CPU核心的一小部分也能轻松处理。也许您应该对脚本进行压力测试并对其进行优化(减少小型磁盘写入等)

通常,在AWS上,如果CPU不足,您应该更改实例类型。我建议使用c5.5大容量的处理器来处理这种容量。根据我的经验,T2实例没有多大用处。您能指定数据来自何处吗?数据来自Coinbase pro/GDAX,来自完整订单书籍级渠道,因此我相信发送到交易所的每个订单都应该记录下来。