redis群集不断打印日志WSA_IO_PENDING

时间:2017-02-03 10:19:21

标签: redis

当我启动redis集群的所有redis-server时,所有这些服务器都会不断打印日志,如WSA_IO_PENDING clusterWriteDone

[9956] 03 Feb 18:17:25.044 # WSA_IO_PENDING writing to socket fd -------------------------------------------------------- 
[9956] 03 Feb 18:17:25.062 # clusterWriteDone written 2520 fd 15----------------------------------------------------------‌​--- 
[9956] 03 Feb 18:17:25.545 # WSA_IO_PENDING writing to socket fd -------------------------------------------------------- 
[9956] 03 Feb 18:17:25.568 # WSA_IO_PENDING writing to socket fd -------------------------------------------------------- –

3 个答案:

答案 0 :(得分:2)

10个月前官方redis回购中有一个问题是关于这个问题的。不幸的是它似乎被抛弃了,它还没有解决:

Redis cluster print "WSA_IO_PENDING writing to socket..." continuously, does it matter?

然而,正如Cy Rossignol在评论中指出的那样,该问题可能与redis本身无关,而与Windows Sockets API无关。 winsock API将该状态返回给应用程序as seen in the documentation

  

WSA_IO_PENDING(997)

     

重叠操作将在稍后完成。

     

该应用程序有   启动了无法完成的重叠操作   立即。稍后将给出完成指示   操作已经完成。请注意,此错误由。返回   操作系统,因此错误号可能会在以后的版本中发生变化   视窗。

也许它并没有得到太多的关注,因为它不是一个bug,虽然它确实给洪水系统日志造成了不便。在那种情况下,你可能无法获得帮助。

似乎没有临时修复。 Windows Redis fork已归档,我不知道您是否可以获得任何帮助。

答案 1 :(得分:1)

没有办法专门转变那些"警告"在Redis for Windows的3.2.x端口中关闭,因为日志记录语句使用最高LL_WARNING级别。这个问题已经在我没有维护的MSOpenTech的回购(我更新到Redis 4.0.2)的分支中报告,并且通过将该级别降低到LL_DEBUG来修复。更多详情:https://github.com/tporadowski/redis/issues/14

此更改将包含在下一个版本(4.0.2.3)中,您也可以获取最新的源代码并自行构建。

目前的版本可以在这里找到:https://github.com/tporadowski/redis/releases

答案 2 :(得分:0)

  1. 转到此位置interface ConstructorProps { foo: number; bar: string; baz: boolean; } class MyClass { foo: number; bar: string; baz: boolean; constructor (props: ConstructorProps) { this.foo = props.foo; this.bar = props.bar; this.baz = props.baz; } }

  2. 在记事本中打开文件C:\Program Files\Redis

  3. 您将找到如下所示的部分:

    redis.windows-service.conf

    在这里,您可以根据自己的要求更改# Specify the server verbosity level. # This can be one of: # debug (a lot of information, useful for development/testing) # verbose (many rarely useful info, but not a mess like the debug level) # notice (moderately verbose, what you want in production probably) # warning (only very important / critical messages are logged) loglevel notice # Specify the log file name. Also 'stdout' can be used to force # Redis to log on the standard output. logfile "Logs/redis_log.txt" 的值。我认为将其更改为loglevel将解决此问题,因为它只会记录基本错误。