Up to Main Index Up to Journal for February, 2021 JOURNAL FOR SUNDAY 28TH FEBRUARY, 2021 ______________________________________________________________________________ SUBJECT: Chit-chat and progressing network changes DATE: Mon 1 Mar 02:11:48 GMT 2021 Time for one last journal entry before the end of the month. This is good as the entries this month have been few. I’ve spent some more time on the chat server experiments. While the experiments seem to have been progressing quite well, I’ve not been touching the WolfMUD code for what seems like ages. The Raspberry Pi 4 I’ve roped in for testing is still fan-less and running hot[1], Some of my free time has been spent on providing some private Go tutoring, which I have enjoyed doing a lot. So, WolfMUD. I sometimes look at your code and it seems to be so ugly. I see flaws in both design and implementation. Yet, I love my little project all the same and strive to improve you, to make you a thing of beauty. Currently I’ve parked the experiments on the chat server. The good bits I’ve been merging into WolfMUD and had 10,000+ and even 20,000+ clients connected: With 10,241 clients: U[752Mb +67Mb] A[ +8806341] O[ 7750371 +1361390] T[10513 +0] G[20509 +0] U[509Mb -243Mb] A[ +8734228] O[ 1904936 -5845435] T[10513 +0] G[20509 +0] U[551Mb +42Mb] A[ +8392318] O[ 3010142 +1105206] T[10513 +0] G[20509 +0] U[589Mb +38Mb] A[ +8417220] O[ 4113964 +1103822] T[10513 +0] G[20509 +0] U[624Mb +34Mb] A[ +8150093] O[ 4984656 +870692] T[10513 +0] G[20509 +0] U[657Mb +33Mb] A[ +7855822] O[ 5605698 +621042] T[10513 +0] G[20509 +0] With 20,481 clients: U[ 1Gb +334Mb] A[+45977594] O[14375050 +11009769] T[20753 +0] G[40989 +0] U[ 1Gb -262Mb] A[+43631596] O[ 6017973 -8357077] T[20753 +0] G[40989 +0] U[ 1Gb +240Mb] A[+41719675] O[13508112 +7490139] T[20753 +0] G[40989 +0] U[ 1Gb +175Mb] A[+40110186] O[19594274 +6086162] T[20753 +0] G[40989 +0] U[ 1Gb -361Mb] A[+39259455] O[ 7923765 -11670509] T[20753 +0] G[40989 +0] U[ 1Gb +94Mb] A[+37105589] O[11115726 +3191961] T[20753 +0] G[40989 +0] U=memory usage, A=allocations/sec, O=objects, T=things, G=goroutines In both cases this was run without any network tuning and a backlog of 1024 messages per client. A backlog of 1024 was chosen at random, being quite large accounts for the increase in memory usage. All client commands completed within a few seconds, no messages dropped and the server stays responsive. I still need to do some tuning to reduce memory usage. There is also an issue which I think is due to the network connections not being taken down cleanly. My plan is to give this until next weekend. If I can’t sort out all of the issues then I will either release ‘as is’ or hide the new functionality behind a feature flag in the server configuration. Go 1.16 was released on 16th February which turns on module mode by default. This means I need to get the latest version of WolfMUD out sooner rather than later. On the 18th February there was a blog post[2] that stated: “We plan to drop support for GOPATH mode in Go 1.17”. Hrm[3]… -- Diddymus [1] The plan is to remove the fan from the shroud it comes with. It seems a nice enough fan that can be temperature controlled using the gpio-fan overlay without any fuss or extra components. [2] The Go Blog, New module changes in Go 1.16: https://blog.golang.org/go116-module-changes [3] How that does not break the compatibility guarantee “that programs written to the Go 1 specification will continue to compile and run correctly, unchanged, over the lifetime of that specification”? I have no idea. The post also says “If you have projects that do not build in module-aware mode, now is the time to migrate”. The compiles and runs unchanged seems to be at odds with the need to migrate… Up to Main Index Up to Journal for February, 2021