Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/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
Google cloud platform 云内存存储Redis CPU利用率高_Google Cloud Platform_Redis_Google Cloud Memorystore - Fatal编程技术网

Google cloud platform 云内存存储Redis CPU利用率高

Google cloud platform 云内存存储Redis CPU利用率高,google-cloud-platform,redis,google-cloud-memorystore,Google Cloud Platform,Redis,Google Cloud Memorystore,我们正在使用Cloud Memorystore Redis实例为我们面向互联网的关键应用程序添加一个缓存层。对Memorystore实例的调用总数(包括get、set和key expiration操作)约为每秒10-15K。CPU利用率一直保持在75-80%左右,预计利用率还会更高 目前,我们在标准服务层下使用M4容量层 需要澄清以下几点 M4容量层对应多少个CPU内核 CPU利用率超过100%真的令人担忧吗?我们是否预计会出现任何明显的性能问题 解决CPU利用率较高(>=100%)导致的性能

我们正在使用Cloud Memorystore Redis实例为我们面向互联网的关键应用程序添加一个缓存层。对Memorystore实例的调用总数(包括get、set和key expiration操作)约为每秒10-15K。CPU利用率一直保持在75-80%左右,预计利用率还会更高

目前,我们在标准服务层下使用M4容量层

需要澄清以下几点

  • M4容量层对应多少个CPU内核
  • CPU利用率超过100%真的令人担忧吗?我们是否预计会出现任何明显的性能问题
  • 解决CPU利用率较高(>=100%)导致的性能问题(如果有)有哪些选项?切换到M5容量层将解决高CPU消耗和相应问题

  • 我们的应用程序实际上是CPU密集型的,我们看不到任何进一步优化应用程序的方法。期待一些有用的参考资料。

    回答您的问题

    1。M4容量层对应多少个CPU内核?
    Cloud Memorystore for Redis是谷歌管理的服务,这意味着谷歌可以保留运行Redis服务的虚拟机的内部详细信息(资源)。尽管如此,预计容量层越高,虚拟机将拥有越多的资源(CPU)。特别是在您的情况下,添加CPU并不能解决CPU使用方面的问题,因为redis服务本身就是这样

    从前面的链接中可以看到:

    为了最大限度地提高CPU使用率,您可以启动多个Redis实例。
    如果你想使用多个CPU,你可以开始考虑一些更早的方法来切分

    2。CPU利用率超过100%真的令人担忧吗?
    是的,CPU利用率高是一个警告,因为它可能导致连接错误或高延迟。 CPU利用率很重要,但Redis实例是否有足够的效率来维持给定延迟下的吞吐量也很重要。当CPU%较高时,可以使用命令
    redis cli--latency
    检查redis延迟

    3。我们是否预计会出现任何明显的性能问题?
    这真的很难说或预测,因为它取决于几个因素(客户端服务、在时间范围内运行的命令、工作负载)。造成高延迟和性能问题的一些最常见原因是:

    • 客户端虚拟机或服务过载,并且不使用来自Redis的消息。:当客户端打开到Redis的TCP连接时,Redis服务器具有发送到该连接的消息缓冲区。如果客户机服务的CPU已达到最大值,内核没有时间接收来自redis的消息,那么它们将在redis服务器上填满

    • 执行的命令消耗了大量CPU:已知处理以下命令可能非常昂贵:
      EVAL/EVALSHA
      钥匙
      LRANGE
      ZRANGE/ZREVRANGE

    4.-解决CPU利用率较高(>=100%)导致的性能问题(如果有)有哪些选项?
    这个问题主要围绕实现的扩展设计。由于redis是单线程的,减少CPU%的更好方法是将数据分片到多个redis实例中,并在其前面有一个代理来分配负载。请查看本节
    Twemproxy
    下的图表

    5.-切换到M5容量层会解决高CPU消耗和相应问题吗?
    切换到更高容量的层会暂时缓解延迟,但这称为垂直扩展,仅限于Cloud Memorystore提供的层