Mass SQL connections, plz help!

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Socks
    Confirmed User
    • May 2002
    • 8475

    #1

    Mass SQL connections, plz help!

    We're having this issue intermittently where SQL fucks up the page and gives a "too many connections" error. It's saying we have around 750,000 current connections right now. What's the deal with that shit?!
  • baddog
    So Fucking Banned
    • Apr 2001
    • 107089

    #2
    Possible cron jobs on the server in one or more of your scripts?

    Comment

    • m4tt
      So Fucking Banned
      • May 2003
      • 384

      #3
      Are you using persistent connections (pconnect)?

      Comment

      • Socks
        Confirmed User
        • May 2002
        • 8475

        #4
        no cron jobs, and it's around 75,000 connections not 750, sorry.. Still it's causin us problems..

        Comment

        • Socks
          Confirmed User
          • May 2002
          • 8475

          #5
          Yes we're using pconnect 1:1 (http to mysql)

          Comment

          • m4tt
            So Fucking Banned
            • May 2003
            • 384

            #6
            I believe that's your problem I've had the same problems in the past and using regular connections instead of persistent has solved them.

            Comment

            • Gasper

              #7
              try optimizing your tables

              Comment

              • Socks
                Confirmed User
                • May 2002
                • 8475

                #8
                Is there a way to put some kind of timeout limit on the persistant connections? Apparently changing from persistent to regular would be a ton of work

                Comment

                • m4tt
                  So Fucking Banned
                  • May 2003
                  • 384

                  #9
                  You really should do the work and change them...


                  "You are probably using a multi-process web server such as Apache. Since database connections cannot be shared among different processes a new one is created if the request happen to come to a different web server child process."

                  Edit: That quote is from this page, assuming you use PHP.. read up..

                  http://us3.php.net/manual/en/feature...onnections.php

                  Comment

                  • Socks
                    Confirmed User
                    • May 2002
                    • 8475

                    #10
                    And they never close? I think that's our problem.. We just reset it all, we have 53 people on our website, and 87 connections.. They will all stay open

                    Comment

                    • Socks
                      Confirmed User
                      • May 2002
                      • 8475

                      #11
                      Persistent connections are SQL links that do not close when the execution of your script ends.

                      okay yeah, read first, ask questions next.. ;) Sec

                      Comment

                      • m4tt
                        So Fucking Banned
                        • May 2003
                        • 384

                        #12
                        They will not close unless you kill them manually.. i've had this problem on Windows, Linux, and FreeBSD. Just don't use them ;)

                        Comment

                        • Socks
                          Confirmed User
                          • May 2002
                          • 8475

                          #13
                          Thank you for your help man, it's really appreciated.. We're gonna stop using them. I think it makes sense for a website like GFY where you have the same people logging in multiple times staying on the site for hours at a time, but for our site it just doesn't make sense.

                          Comment

                          • m4tt
                            So Fucking Banned
                            • May 2003
                            • 384

                            #14
                            What language are you using? PHP?

                            It's very simple to switch from pconnect to regular connections with PHP. They work exactly the same way it's just a matter of replacing mysql_pconnect with mysql_connect

                            Comment

                            • KidCock
                              So Fucking Banned
                              • May 2003
                              • 788

                              #15
                              From experience, persistent connections never worked very well for us. Even using mysql_pclose() in PHP didn't always work 100%.

                              You are definately probably better off with normal connections for your site. Any important script however should use pconnect so that it won't "Lost conneciton to server during query" on you.

                              Also, if it is a lot of work to change the pconnect's to connects, you are definately not building your code in a modular fashion ;>....For instance I have a db.inc which is basically a DB wrapper...thus I would call open_db("update") or open_db("select") for instance, the actual mysql_connect is in db.inc =)

                              Makes modifying things a LOT easier.

                              In your case however, you can use "rep" to just replace like so:

                              rep -R 'mysql_pconnect' 'mysql_connect' *

                              from your basedir.

                              Comment

                              • m4tt
                                So Fucking Banned
                                • May 2003
                                • 384

                                #16
                                You should be using PEAR (pear.php.net) anyways

                                Comment

                                Working...