(AWS)如果没有足够的CPU,python脚本会发生什么?
我的小AWS EC2实例运行两个python脚本,一个作为web套接字(~2msg/ms)接收JSON消息并写入csv文件,另一个用于压缩和上载csv。经过测试,EC2实例记录的数据(~2.4gb/天)比我自己的计算机(~5GB)记录的数据要少。监视显示EC2实例消耗了所有CPU点数,并且正在使用基线电源运行。我的问题是,实例是否因为写消息速度不够快而丢弃消息(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服务器。 如果您的第一个脚本运行速度不够快,无法与服务器端的消息生成速度相匹配,
感谢所有能够提供任何见解的人 这取决于WebSocket服务器。 如果您的第一个脚本运行速度不够快,无法与服务器端的消息生成速度相匹配,则TCP接收缓冲区将变满,服务器发送数据包的速度将减慢。假设消息生成率接近恒定,未处理的消息将堆积在服务器上,服务器可以对其进行编码,使其累积或最终丢弃 即使服务器从未丢弃过消息,如果没有足够的计算能力,您的实例也永远赶不上-在8月15日,它可能正在处理8月10日的消息-因此需要升级实例 一天中的数据传输速率是否变化很大(例如,晚上20:00左右的高峰时间会有更多的消息)?如果是这样,数据丢失可能发生在该期间
但是Python真的那么慢吗?5GB/天每秒不到100KB,即使是一个现代CPU核心的一小部分也能轻松处理。也许您应该对脚本进行压力测试并对其进行优化(减少小型磁盘写入等)通常,在AWS上,如果CPU不足,您应该更改实例类型。我建议使用c5.5大容量的处理器来处理这种容量。根据我的经验,T2实例没有多大用处。您能指定数据来自何处吗?数据来自Coinbase pro/GDAX,来自完整订单书籍级渠道,因此我相信发送到交易所的每个订单都应该记录下来。