Silli: Server schaft es nicht mehr

Hi,

Ich habe seit einiger Zeit ein großes Problem mit den Zugriffen auf mein Server.

Leider bin ich in Linux kein Meister der Maschine ;O)
Ich habe keinen Schimmer waran es liegen kann bzw. was ich machen kann.
Mit meinen oberflächlichen Wissen konnte ich schon ausmachen das der Server anscheined überlastet ist siehe Auszug.

Jetzt geht es darum rauszufinden woran es liegen könnte. D.H wer verursacht den übermäßigen Träffic ?

Wie kann ich mir mir die Zugriffe anzeigen lassen? Derzeit sind ca. 15 Domains über den Server erreichbar. Eine Anzeige per Konsole mit listung der http Anfragen incl. Domain.

Danke

Silli

top - 21:59:29 up 85 days, 11:24,  1 user,  load average: 10.83, 19.52, 32.55
Tasks: 203 total,   2 running, 200 sleeping,   0 stopped,   1 zombie
 Cpu0 :  2.5% us,  1.7% sy,  0.0% ni, 70.0% id, 25.0% wa,  0.0% hi,  0.8% si
 Cpu1 :  4.1% us,  2.5% sy,  0.0% ni,  0.0% id, 90.1% wa,  0.8% hi,  2.5% si
Mem:   2065372k total,  2012968k used,    52404k free,    18380k buffers
Swap:  1967952k total,  1673104k used,   294848k free,    54160k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  #C COMMAND
32072 mysql     15   0 3066m 1.5g 2096 S  0.6 75.0   7254:49  0 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --u
 3143 bind      19   0 53548  11m  856 S  0.0  0.5  23:09.41  1 /usr/sbin/named -u bind
31406 nobody    16   0 17992 7124 2832 S  0.0  0.3   0:01.86  0 /usr/sbin/httpd -k start
32582 nobody    15   0 18240 6944 2492 S  0.0  0.3   0:01.04  1 /usr/sbin/httpd -k start
32676 nobody    16   0 18092 6912 2488 S  0.0  0.3   0:00.87  1 /usr/sbin/httpd -k start
32638 nobody    16   0 18080 6840 2460 S  0.0  0.3   0:01.21  0 /usr/sbin/httpd -k start
 8418 amavis    18   0 16656 6804 1280 S  0.0  0.3   0:00.27  0 amavisd (child)
32713 nobody    16   0 18044 6704 2384 S  0.0  0.3   0:01.13  0 /usr/sbin/httpd -k start
32632 nobody    16   0 17388 6636 2832 S  0.0  0.3   0:04.51  0 /usr/sbin/httpd -k start
32552 nobody    16   0 17676 6632 2624 S  0.0  0.3   0:02.88  1 /usr/sbin/httpd -k start
  306 nobody    16   0 17520 6332 2436 S  0.0  0.3   0:01.03  0 /usr/sbin/httpd -k start
32580 nobody    20   0 17676 6300 2432 S  0.0  0.3   0:00.87  0 /usr/sbin/httpd -k start
32736 nobody    16   0 17484 6292 2504 S  0.0  0.3   0:01.01  0 /usr/sbin/httpd -k start
32746 nobody    16   0 17204 6264 2704 S  0.0  0.3   0:01.24  1 /usr/sbin/httpd -k start
32729 nobody    16   0 17164 6192 2648 S  0.0  0.3   0:02.42  1 /usr/sbin/httpd -k start
32725 nobody    15   0 17440 6136 2444 S  0.0  0.3   0:00.86  0 /usr/sbin/httpd -k start
32274 nobody    15   0 17472 6072 2460 S  0.0  0.3   0:00.47  0 /usr/sbin/httpd -k start
32651 nobody    16   0 16928 6072 2744 S  0.0  0.3   0:01.26  0 /usr/sbin/httpd -k start
31590 nobody    15   0 17464 6040 2452 S  0.0  0.3   0:01.15  1 /usr/sbin/httpd -k start
32271 nobody    15   0 17424 6020 2384 S  0.0  0.3   0:00.64  1 /usr/sbin/httpd -k start
32748 nobody    16   0 17008 5996 2676 S  0.0  0.3   0:01.52  0 /usr/sbin/httpd -k start
32747 nobody    16   0 16812 5816 2676 S  0.0  0.3   0:01.22  0 /usr/sbin/httpd -k start
32198 nobody    22   0 17752 5772 2840 S  0.0  0.3   0:04.71  0 /usr/sbin/httpd -k start
31577 nobody    15   0 17276 5756 2888 S  0.0  0.3   0:05.32  1 /usr/sbin/httpd -k start
32673 nobody    16   0 16312 5408 2716 S  0.0  0.3   0:00.34  0 /usr/sbin/httpd -k start
32743 nobody    15   0 16812 5388 2368 S  0.0  0.3   0:00.08  0 /usr/sbin/httpd -k start
32160 nobody    15   0 16940 5368 2852 S  0.0  0.3   0:05.40  0 /usr/sbin/httpd -k start
32730 nobody    16   0 16648 5280 2352 S  0.0  0.3   0:00.09  0 /usr/sbin/httpd -k start
32604 nobody    18   0 16400 5272 2476 S  0.0  0.3   0:00.13  0 /usr/sbin/httpd -k start
32631 nobody    15   0 16372 5244 2528 S  0.0  0.3   0:00.18  0 /usr/sbin/httpd -k start
31401 nobody    15   0 17180 5240 2676 S  0.0  0.3   0:00.91  0 /usr/sbin/httpd -k start

  1. Hallo,

    Scheinbar liegt es am Mysql Server

    Habe jetzt den Mysql Server neu gestartet und siehe da alles läuft wieder

    Bei sehr vielen Zugriffen macht diese Mysql Abfrage Probleme:

    SELECT *
    FROM tabelle
    ORDER BY RAND( )
    LIMIT 0 , 5

    Silli

    1. Hi!

      SELECT *
      FROM tabelle
      ORDER BY RAND( )
      LIMIT 0 , 5

      Das kann sein. Wie gross ist denn 'tabelle'? Wieviele Attribute hat das Ding und wieviele Zeilen? Wenn Du nicht alle Attribute abfragen willst solltest Du immer nur die nehmen, die auch benoetigt werden.

      Vielelicht ist aber auch nur das Datenbankdesign grottig.

      --
      "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
            - T. Pratchett
      1. Hallo,

        Zum Datenbankdesign
        ist das letzte Projekt was aus meinen Kopf entsprungen ist.

        SELECT *
        FROM tabelle
        ORDER BY RAND( )
        LIMIT 0 , 5

        Kann es sein das RAND() auf keinen Index zurückgreift?
        Gibt es eine bessere Alternative?

        Derzeit sind ca. 40.000 Seitenzugriffe tägl. ich schätze die Randfunktion muss bei 30.000 Zugriffen arbeit leisten.

        Silli

        1. HI,

          Die Abfrage scheint meine mysql Version nicht zu unterstützen
          Woran liegt es ?

          SQL-Befehl:

          SELECT *
          FROM ok_tabelle AS t1
          INNER JOIN (

          SELECT ROUND( RAND( ) * (
          SELECT MAX( ID )
          FROM ok_tabelle ) ) AS ID
          ) AS t2 ON t1.ID >= t2.ID
          ORDER BY t1.ID ASC
          LIMIT 1
          MySQL meldet:

          #1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT
              ROUND(RAND() * (SELECT MAX(ID) FROM ok_tabelle)) AS

          Grüße Silli

          1. Mahlzeit Silli,

            Die Abfrage scheint meine mysql Version nicht zu unterstützen
            Woran liegt es ?

            Komiker ... woher soll IRGENDJEMAND wissen, warum diese Abfrage nicht mit der von Dir verwendeten MySQL-Version funktioniert, wenn Du diese noch nicht einmal angibst?

            Glaskugeln sind grad aus. Kommen auch nicht wieder rein.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          2. echo $begrüßung;

            Die Abfrage scheint meine mysql Version nicht zu unterstützen

            Welche ist es denn?

            Woran liegt es ?

            Subquerys beispielsweise sind erst am 4.1 implementiert.

            echo "$verabschiedung $name";

            1. Dank Dir

              Subquerys beispielsweise sind erst am 4.1 implementiert.

              Server:
              Verbunden mit MySQL 4.0.23_Debian-7

              Silli