Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Michał Tupacz 12 posts 82 karma points
    Oct 20, 2016 @ 13:33
    Michał Tupacz
    0

    CPU usage 100%

    Hi,

    Have a little problem with SEO Checker. The moment i enable it CPU usage spikes to 100%. If i comment out SEO modules in web.config everything goes back to normal.

    I have the newest version installed (previously used version 1.8 - same behavior), cleaned database tables to no avail.

    It's worth mentioning that i have custom URL rewrite rule set up for IIS (and disabled URL Rewriting in SEO Checker)

    Have anyone had a similar issue? Thanks

  • Richard Soeteman 4035 posts 12842 karma points MVP
    Oct 20, 2016 @ 13:45
    Richard Soeteman
    0

    Hi,

    Was this after a huge page publish? Then disable Automatic validate after publish in settings.

    Best,

    Richard

  • Michał Tupacz 12 posts 82 karma points
    Oct 20, 2016 @ 14:06
    Michał Tupacz
    0

    Hi Richard and thanks for your reply.

    I've disabled Automatic validate and after that CPU dropped. So far so good.

    Went to backoffice, selected Home node and SEO tab, validation result kicked in and then CPU spiked to 100% again.

    I can see in IIS that a request to /umbraco/backoffice,SEOChecker/SEOCheckerApi/validate?id=1111 is beeing processed for 4 minutes now.

    Also went to umbraco log and found a bunch of errors:

     ERROR SEOChecker.Core.Repository.Queue.AnalyserQueueRepository - [Thread 8] SEOChecker: Error validating document '16325'
    umbraco.DataLayer.SqlHelperException: Umbraco Exception (DataLayer): SQL helper exception in ExecuteNonQuery ---> System.Data.SqlClient.SqlException: String or binary data would be truncated.
    
  • Richard Soeteman 4035 posts 12842 karma points MVP
    Oct 20, 2016 @ 14:13
    Richard Soeteman
    0

    Hi Michal,

    I think there are two issues here. One is that the datatype acts on the preview version of content by default. This needs to ensure you have the preview structure there. You can alos validate the published version then you need to add the app setting SEOChecker.DisablePreviewValidation to web.config and give that the value true. Then it doesn't generate the preview version.

    The other issue is propably the ErrorDescription column in SEOChecker_ValidationIssues table. Can you try to increase that one?

    Hope this helps,

    Richard

  • Michał Tupacz 12 posts 82 karma points
    Oct 20, 2016 @ 14:44
    Michał Tupacz
    0

    Hi again, After increasing ErrorDescription and Error columns values the log problem was solved, thanks.

    However i'm still facing the pending request problem which btw in my opinion is the reason for this 100% CPU problem. It seems like there is some retry loop there?

    I've also noticed another log entry:

     ERROR SEOChecker.Core.Validation.SEOValidator - [Thread 22] SEOChecker: Error during validating tag for document: 1053 using validator 'BrokenLinks'
    System.ArgumentNullException: Value cannot be null.
    Parameter name: format
       at System.String.Format(String format, Object arg0, Object arg1)
       at SEOChecker.Validators.ContentValidators.Links.BrokenLinkValidator.Parse(ValidationResult result, IUmbracoDocument document, HtmlDocument htmlDocument, IContextInfo contextInfo)
       at SEOChecker.Core.Validation.SEOValidator.Validate(ValidationResult validationResult, IUmbracoDocument document, HtmlDocument htmlDocument, IContextInfo context)
    

    The document (1053) is the one being validated.

  • Richard Soeteman 4035 posts 12842 karma points MVP
    Oct 20, 2016 @ 14:52
    Richard Soeteman
    0

    Did you change web.config also? To disable preview validation? There is a retry on links being validated but that should only validate external urls

  • Michał Tupacz 12 posts 82 karma points
    Oct 20, 2016 @ 14:55
    Michał Tupacz
    0

    Yep, i added

    <add key="SEOChecker.DisablePreviewValidation" value="true"/>
    

    under appSettings

    Is there a way to confirm that preview validation is in fact disabled?

  • Richard Soeteman 4035 posts 12842 karma points MVP
    Oct 20, 2016 @ 15:00
    Richard Soeteman
    0

    No that should just work, only by removing the whole datatype. Not anything else in the logs anymore?

  • Michał Tupacz 12 posts 82 karma points
    Oct 20, 2016 @ 15:10
    Michał Tupacz
    0

    The only thing that still pops out is the error i mentioned above regarding BrokenLinks validator.

    A wild guess : let's assume that on this node there is a, say, ContentPicker with a link to non existing page. is it possible that this could cause validation failure and endless retry loop?

  • Richard Soeteman 4035 posts 12842 karma points MVP
    Oct 21, 2016 @ 06:47
    Richard Soeteman
    0

    Hi Michal,

    It should not validate internal links when in editmode but you never know. Can you add another key to web.config

    <add key="SEOChecker.LogDebugHTML" value="true" />

    This will log the html of the page in /app_data/temp/seochecker/preview. Lots of external links in there?

    Best,

    Richard

  • Michał Tupacz 12 posts 82 karma points
    Oct 21, 2016 @ 08:33
    Michał Tupacz
    0

    Hi Richard,

    No external links created. In fact the only folder created after i added this entry was debug/published with home node html.

    I noticed something else. When i select the home node in backoffice and check current requests to the server i can see the one to SEOCheckerApi/Validate and a bunch of others from server IP to many of the child nodes.

    To me it seems like the validator traverse child nodes for some reason. And probably validation will end when whole tree will be validated?

  • Richard Soeteman 4035 posts 12842 karma points MVP
    Oct 21, 2016 @ 08:39
    Richard Soeteman
    0

    That last for sure is not happening. only the current document is validated

  • Michał Tupacz 12 posts 82 karma points
    Oct 21, 2016 @ 08:43
    Michał Tupacz
    0

    Even when there is a mobile menu with child nodes links rendered as external? Wouldn't the BrokenLinks validator check them out?

  • Richard Soeteman 4035 posts 12842 karma points MVP
    Oct 21, 2016 @ 08:47
    Richard Soeteman
    0

    Oh but those are external links indeed, those will be checked. But the not saving the debug file is kind of telling me that it can't create any connection using the webclient object at all form the server. Otherwise it would have saved the file.

  • Michał Tupacz 12 posts 82 karma points
    Oct 21, 2016 @ 08:56
    Michał Tupacz
    0

    Right, so normally it would check the URL and save its HTML output to a file? Thought that it is a simple ping.

  • Richard Soeteman 4035 posts 12842 karma points MVP
    Oct 21, 2016 @ 08:59
    Richard Soeteman
    0

    If you validate then it saves the page when you set the web.config key.

    Link validation is normal pings indeed. But the first issue is your real issue I am affraid.

  • Michał Tupacz 12 posts 82 karma points
    Oct 21, 2016 @ 09:08
    Michał Tupacz
    0

    But the validated node HTML was in fact saved.

    I think a get a whole picture now. My home node HTML contains a news list generated for mobile. Since there are about a 1000 nodes there, the links validator has to ping all of them and it takes time. When it's done the CPU should go back to normal. Will give it a few minutes and get back to you.

  • Michał Tupacz 12 posts 82 karma points
    Oct 21, 2016 @ 09:19
    Michał Tupacz
    0

    Success!

    It took about 30 minutes to complete, but after that CPU dropped.

    My only concern is that the whole validation will be fired again at some point, right? I did disable automatic validation trigger though so only manual validation is now possible?

  • Richard Soeteman 4035 posts 12842 karma points MVP
    Oct 21, 2016 @ 09:28
    Richard Soeteman
    0

    Hi Michal,

    It's validating because the datatype does some validation as well. This is also needed to give feedback about keyword usage. What I would advise since it's only the home node that has that many external links to remove the SEOChecker datatype from the homepage then it won't validate that page. All other pages don't have that many links I assume and won't be an issue.

    Hope this helps,

    Richard

  • Michał Tupacz 12 posts 82 karma points
    Oct 21, 2016 @ 10:06
    Michał Tupacz
    0

    Thank you Richard for your help, really appreciate it. The thing is, this load of links is generated as a part of global menu so it's pretty much everywhere. Will have to figure out what to do with them then.

  • Nikolaj Lund Jensen 2 posts 73 karma points
    Aug 25, 2017 @ 11:54
    Nikolaj Lund Jensen
    0

    Hi Michal,

    I am experiencing the same issue with high CPU spikes which I believe is due to SEO-checker following every link on every page as a result of the global menu with many links. Turning off the "Validate on Publish" did reduce the CPU load, which for now is fine.

    Did you find a solution to sort of exclude the global nav from the list of links that SEO-checker checks?

  • Michał Tupacz 12 posts 82 karma points
    Aug 25, 2017 @ 12:23
    Michał Tupacz
    0

    Hi Nikolaj,

    It's been a while since i worked on this project, but as far as i recall, the solution for me was to get rid of the mobile navigation (i only show the root nodes and then load children if needed).

    So nothing special really.

Please Sign in or register to post replies

Write your reply to:

Draft