Re: New IMAP server, troubleshooting slow IMP performance

Michael J Rubinsky <[email protected]> Wed, 02 Aug 2017 19:08:29 +0000
Newsgroups gmane.comp.horde.imp
Message-ID <20170802190829.Horde.GmFiABf8ru3fhHdUdjUGCWB@h4.theupstairsroom.com>
Quoting Simon Wilson <[email protected]>:

>>>>> I just switched it to nosql to use the mongo nosql setup on the  
>>>>> server that is used for Horde cache - and the email times have  
>>>>> dropped to about 0.5s.
>>>>>
>>>>> Thanks Jan, that was the ticket. I think nosql is probably  
>>>>> better performance anyway?
>>>>
>>>> Probably yes.
>>>>
>>>> --
>>>> Jan Schneider
>>>
>>> Since setting my IMAP cache to be nosql (mongo), every 5 or 6  
>>> hours mongo goes 100% CPU for 2 or 3 hours. The mongod log is a  
>>> constant flow of messages, as follows below.
>>>
>>> During this time, Imp seems to be slower again, like when IMAP  
>>> caching was not working properly.
>>>
>>> Then for some reason it will just stop. The log sequence shows the  
>>> tail of it running flat out (triggering every 50 - 100ms), then  
>>> stopping.
>>>
>>> Any ideas?
>>>
>>> Simon
>>>
>>> 2017-08-01T23:04:13.836+1000 I COMMAND  [conn100] query  
>>> horde.horde_cache query: { cid: "e471c4112fbd3a7374d6deaa2192039e"  
>>> } planSummary: COLLSCAN ntoskip:0 keysExamined:0  
>>> docsExamined:59189 cursorExhausted:1 keyUpdates:0 writeConflicts:0  
>>> numYields:463 nreturned:1 reslen:605 locks:{ Global: {  
>>> acquireCount: { r: 928 } }, Database: { acquireCount: { r: 464 }  
>>> }, Collection: { acquireCount: { r: 464 } } } 133ms
>>> 2017-08-01T23:04:13.943+1000 I COMMAND  [conn101] query  
>>> horde.horde_cache query: { cid: "4c3e501b437e318e40097fe327d66ea6"  
>>> } planSummary: COLLSCAN ntoskip:0 keysExamined:0  
>>> docsExamined:59180 cursorExhausted:1 keyUpdates:0 writeConflicts:0  
>>> numYields:464 nreturned:1 reslen:322 locks:{ Global: {  
>>> acquireCount: { r: 930 } }, Database: { acquireCount: { r: 465 }  
>>> }, Collection: { acquireCount: { r: 465 } } } 123ms
>>> 2017-08-01T23:04:14.024+1000 I COMMAND  [conn100] query  
>>> horde.horde_cache query: { cid: "e471c4112fbd3a7374d6deaa2192039e"  
>>> } planSummary: COLLSCAN ntoskip:0 keysExamined:0  
>>> docsExamined:59189 cursorExhausted:1 keyUpdates:0 writeConflicts:0  
>>> numYields:464 nreturned:1 reslen:605 locks:{ Global: {  
>>> acquireCount: { r: 930 } }, Database: { acquireCount: { r: 465 }  
>>> }, Collection: { acquireCount: { r: 465 } } } 173ms
>>> 2017-08-01T23:04:14.050+1000 I COMMAND  [conn73] query  
>>> horde.horde_cache query: { cid: "0a6536c57d01c2ea148c511301648064"  
>>> } planSummary: COLLSCAN ntoskip:0 keysExamined:0  
>>> docsExamined:59182 cursorExhausted:1 keyUpdates:0 writeConflicts:0  
>>> numYields:463 nreturned:1 reslen:765 locks:{ Global: {  
>>> acquireCount: { r: 928 } }, Database: { acquireCount: { r: 464 }  
>>> }, Collection: { acquireCount: { r: 464 } } } 160ms
>>> 2017-08-01T23:04:15.010+1000 I COMMAND  [conn73] query  
>>> horde.horde_cache query: { cid: "7f626b12cffb4951d3f569c6d2f0d3cd"  
>>> } planSummary: COLLSCAN ntoskip:0 keysExamined:0  
>>> docsExamined:59184 cursorExhausted:1 keyUpdates:0 writeConflicts:0  
>>> numYields:463 nreturned:1 reslen:736 locks:{ Global: {  
>>> acquireCount: { r: 928 } }, Database: { acquireCount: { r: 464 }  
>>> }, Collection: { acquireCount: { r: 464 } } } 101ms
>>> 2017-08-01T23:04:15.248+1000 I COMMAND  [conn101] query  
>>> horde.horde_cache query: { cid: "f73608d48bef65a48f2a887a510b397b"  
>>> } planSummary: COLLSCAN ntoskip:0 keysExamined:0  
>>> docsExamined:59183 cursorExhausted:1 keyUpdates:0 writeConflicts:0  
>>> numYields:463 nreturned:1 reslen:701 locks:{ Global: {  
>>> acquireCount: { r: 928 } }, Database: { acquireCount: { r: 464 }  
>>> }, Collection: { acquireCount: { r: 464 } } } 106ms
>>> 2017-08-01T23:04:30.409+1000 I NETWORK  [conn95] end connection  
>>> 127.0.0.1:47564 (26 connections now open)
>>> 2017-08-01T23:04:35.415+1000 I NETWORK  [conn49] end connection  
>>> 127.0.0.1:40664 (25 connections now open)
>>> 2017-08-01T23:04:37.417+1000 I NETWORK  [conn99] end connection  
>>> 127.0.0.1:56114 (24 connections now open)
>>> 2017-08-01T23:04:39.419+1000 I NETWORK  [conn64] end connection  
>>> 127.0.0.1:42526 (23 connections now open)
>>> 2017-08-01T23:04:43.423+1000 I NETWORK  [conn92] end connection  
>>> 127.0.0.1:47472 (22 connections now open)
>>> 2017-08-01T23:04:47.427+1000 I NETWORK  [conn78] end connection  
>>> 127.0.0.1:44930 (21 connections now open)
>>> 2017-08-01T23:04:51.432+1000 I NETWORK  [conn86] end connection  
>>> 127.0.0.1:45858 (20 connections now open)
>>> 2017-08-01T23:04:56.434+1000 I NETWORK  [conn83] end connection  
>>> 127.0.0.1:45694 (19 connections now open)
>>> 2017-08-01T23:05:08.004+1000 I COMMAND  [conn74] query  
>>> horde.horde_cache query: { cid: "cae0be8ca4bcc7fe642c2498640c0af4"  
>>> } planSummary: COLLSCAN ntoskip:0 keysExamined:0  
>>> docsExamined:59188 cursorExhausted:1 keyUpdates:0 writeConflicts:0  
>>> numYields:463 nreturned:1 reslen:440 locks:{ Global: {  
>>> acquireCount: { r: 928 } }, Database: { acquireCount: { r: 464 }  
>>> }, Collection: { acquireCount: { r: 464 } } } 106ms
>>> 2017-08-01T23:05:08.232+1000 I COMMAND  [conn91] query  
>>> horde.horde_cache query: { cid: "7f626b12cffb4951d3f569c6d2f0d3cd"  
>>> } planSummary: COLLSCAN ntoskip:0 keysExamined:0  
>>> docsExamined:59184 cursorExhausted:1 keyUpdates:0 writeConflicts:0  
>>> numYields:464 nreturned:1 reslen:736 locks:{ Global: {  
>>> acquireCount: { r: 930 } }, Database: { acquireCount: { r: 465 }  
>>> }, Collection: { acquireCount: { r: 465 } } } 102ms
>>> 2017-08-01T23:05:33.484+1000 I NETWORK  [conn97] end connection  
>>> 127.0.0.1:56032 (18 connections now open)
>>>
>>> --
>>> Simon Wilson
>>> M: 0400 12 11 16
>>
>> Mongo ran at 100% CPU with Imp IMAP caching for about 7 hours  
>> straight overnight. 
>>
>> I have set Imp to use Redis (hashtable) cache, will see if that  
>> works better.
>>
>> Simon
>>
>> -- 
>
> I switched both Horde and Imp caching over to Redis, and have  
> disabled mongo...
>
> What that has shown is that it's not Mongo that's the cause...
>
> One device is logging this, over and over again:
>
> [13102][2017-08-02T13:07:25+10:00] INFO:  
> ----------Horde_Core_ActiveSync_Driver::authenticate() attempt for  
> dom----------
> [13102][2017-08-02T13:07:26+10:00] INFO: ----------SYNC request  
> received for user dom
> [13102][2017-08-02T13:07:26+10:00] INFO: ----------Request being  
> handled for device: ANDROIDC1102625737, Supporting protocol version:  
> 14.1, Using Horde_ActiveSync v2.38.4
> [13102][2017-08-02T13:07:26+10:00] INFO: Policykey: 1936295678 verified.
> [13102][2017-08-02T13:07:26+10:00] I: <Synchronize>
> [13102][2017-08-02T13:07:26+10:00] I:  <Folders>
> [13102][2017-08-02T13:07:26+10:00] I:   <Folder>
> [13102][2017-08-02T13:07:26+10:00] I:    <SyncKey>
> [13102][2017-08-02T13:07:26+10:00] I:       
> {597edfd4-81f4-4718-b7c8-314dc0a801e6}1735
> [13102][2017-08-02T13:07:26+10:00] I:    </SyncKey>
> [13102][2017-08-02T13:07:26+10:00] I:    <FolderId>
> [13102][2017-08-02T13:07:26+10:00] I:      F96d3fb07
> [13102][2017-08-02T13:07:26+10:00] I:    </FolderId>
> [13102][2017-08-02T13:07:26+10:00] I:    <DeletesAsMoves>
> [13102][2017-08-02T13:07:26+10:00] I:      1
> [13102][2017-08-02T13:07:26+10:00] I:    </DeletesAsMoves>
> [13102][2017-08-02T13:07:26+10:00] I:    <GetChanges />
> [13102][2017-08-02T13:07:26+10:00] I:    <WindowSize>
> [13102][2017-08-02T13:07:26+10:00] I:      10
> [13102][2017-08-02T13:07:26+10:00] I:    </WindowSize>
> [13102][2017-08-02T13:07:26+10:00] I:    <Options>
> [13102][2017-08-02T13:07:26+10:00] I:     <FilterType>
> [13102][2017-08-02T13:07:26+10:00] I:       3
> [13102][2017-08-02T13:07:26+10:00] I:     </FilterType>
> [13102][2017-08-02T13:07:26+10:00] I:     <AirSyncBase:BodyPreference>
> [13102][2017-08-02T13:07:26+10:00] I:      <AirSyncBase:Type>
> [13102][2017-08-02T13:07:26+10:00] I:        2
> [13102][2017-08-02T13:07:26+10:00] I:      </AirSyncBase:Type>
> [13102][2017-08-02T13:07:26+10:00] I:      <AirSyncBase:TruncationSize>
> [13102][2017-08-02T13:07:26+10:00] I:        200000
> [13102][2017-08-02T13:07:26+10:00] I:      </AirSyncBase:TruncationSize>
> [13102][2017-08-02T13:07:26+10:00] I:     </AirSyncBase:BodyPreference>
> [13102][2017-08-02T13:07:26+10:00] I:    </Options>
> [13102][2017-08-02T13:07:26+10:00] I:   </Folder>
> [13102][2017-08-02T13:07:26+10:00] ERR: COLLECTIONS:  
> Horde_ActiveSync_Collections::getBackendIdForFolderUid failed  
> because folder was not found in cache.
> [13102][2017-08-02T13:07:26+10:00] O: <Synchronize>
> [13102][2017-08-02T13:07:26+10:00] O:  <Folders>
> [13102][2017-08-02T13:07:26+10:00] O:   <Folder>
> [13102][2017-08-02T13:07:26+10:00] O:    <SyncKey>
> [13102][2017-08-02T13:07:26+10:00] O:      
> {597edfd4-81f4-4718-b7c8-314dc0a801e6}1736
> [13102][2017-08-02T13:07:26+10:00] O:    </SyncKey>
> [13102][2017-08-02T13:07:26+10:00] O:    <FolderId>
> [13102][2017-08-02T13:07:26+10:00] O:     F96d3fb07
> [13102][2017-08-02T13:07:26+10:00] O:    </FolderId>
> [13102][2017-08-02T13:07:26+10:00] O:    <Status>
> [13102][2017-08-02T13:07:26+10:00] O:     8
> [13102][2017-08-02T13:07:26+10:00] O:    </Status>
> [13102][2017-08-02T13:07:26+10:00] O:   </Folder>
> [13102][2017-08-02T13:07:26+10:00] O:  </Folders>
> [13102][2017-08-02T13:07:26+10:00] O: </Synchronize>
> [13102][2017-08-02T13:07:26+10:00] INFO: Maximum memory usage for  
> ActiveSync request: 17301504 bytes.
>
> So it looks like a particular device repeatedly trying to query  
> ActiveSync is the root cause. The phone is my son's LG G3 running  
> Android 6, with the native email client.
>
> I see this:
>
> [02/Aug/2017:13:08:35 +1000] "POST  
> /Microsoft-Server-ActiveSync?Cmd=Sync&User=dom&DeviceId=androidc1102625737&DeviceType=Android HTTP/1.1" 200 76 "-"  
> "Android-Mail/7.7.2.162644686.release"0/632339
>
> each time it tries.
>
> So it looks like something to do with my caching is not working properly.
>
> What is the Correct way to clear caches if I switch between  
> hashtable and nosql, and make connecting devices aware of that, and  
> not end up with racing CPU usage?
>
> I can run redis or mongo for Horde / Imp caching, but it looks like  
> I'm having issues with stale cache if I switch?

The IMAP cache should not have any direct effect on ActiveSync devices.


> Simon.
>
> -- 
> Simon Wilson
> M: 0400 12 11 16
>
> -- 
> imp mailing list
> Frequently Asked Questions: http://wiki.horde.org/FAQ
> To unsubscribe, mail: [email protected]



-- 
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject

-- 
imp mailing list
Frequently Asked Questions: http://wiki.horde.org/FAQ
To unsubscribe, mail: [email protected]
(unnamed) (application/pgp-keys, 9.1 KB) - not displayed
signature.asc (application/pgp-signature, 821 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4

iQIcBAABAgAGBQJZgiMtAAoJEJGSgkbRsxbbJisQAIo3VFKfe4w3ps3MHaSDyb1L
PJEZzY2lMD/Pn43BduVKdv6IqB0QOcd28wdjLeLdJ5EKJfTXdCBe4ZBcw+AQdL06
ZhO34Sm1HLqAoTmXhx1KxXa2vb77mUnJnS2EfxtvnoSl0o9ThH4cknbteV9qL0K1
G50zT9f805toZp6pyJfS6xAzvEWoOlelk2pMHN/P2y9jyXBTFGma4voP+9zCynnG
+z39tlDBfIJDTpgo8HJGetS/GyYhnPT8f/xFh65jafHsDPjEQJICdu9hvzOXaNPl
yNgmhJ2fv8P7GHbQ2paHmSH3mP3aOmWmdtdH9+zqYc5z2MHdXFTWGgfWMv9LKZbm
yeSdZ/OHTAGsgQtDGig7GoY7EH4FP3SF03JL8xzRQGRtDmLh1k1m302FD+9a3NoK
iyaWEWiF+Xjf3Tx4ti/gncflAGnaiSSTKGw6D+eGNnq8C4o63wLS82j8Z7nduVfO
44GkPHmHoePKMHivM2IvUhjNkvWqWUTV3zfkp88GKpcQdkZi0e4D30JzIpOf8USe
AF34FygiJniaTCZvBcc95A2ysHGeoeGemD3gaxdAiD3lird3Lk0BCXhLBpGQTKWh
TO4MPqaAGQPc+oE5NB5/iOWbLpkimoZhgH0Hcak6ognYWzUxfaIcprV5jXFimGv5
+yhyejTCOqhAo9u83R6U
=KyXp
-----END PGP SIGNATURE-----