Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Optimierung MYSQL und APACHE

  1. #1
    Registrierter Benutzer
    Registriert seit
    Aug 2008
    Beiträge
    5

    Optimierung MYSQL und APACHE

    Hi ich habe einige Probleme mit meinem Virtuellem Server


    Betriebssystem: Debian 4.0
    Arbeitsspeicher: 1GB


    Auf dem Server läuft nur relativ wenig was zusätzlich nach der Grund Installation hinzugefügt wurde, im wesentlichen ist es

    - Webserver (Apache2)
    - MYSQL
    - PHP 5
    - ProFTPD

    Reicht mir auch vollkommen aus soll nämlich lediglich als Webserver Arbeiten der eine Homepage beherbergt.

    Besucherzahlen liegen täglich bei ca 7.000-10.000 am Wochendene können es auch mal mehr sein.

    Zum Problem:

    Fahre ich den Server jetzt z.b. hoch, so ist er einbandfrei, super schnell und alles äuft absolut genau so wie es soll.

    Nach 1-3 Tagen fängt er dann aber langsam an zicken zu machen und wird von Stunde zu Stunde langsamer, bis fast garnichts mehr geht.

    Auf der Seite erscheinen dann andauernd MYSQL Fehler, der Webserver ist so gut wie garnicht mehr erreichbar, kann allerdings weiterhin
    vernünftig angepingt werden.

    Die Prozesse werden immer mehr, MYSQL und APACHE2 brauchen immer mehr Arbeitsspeicher bist die Kiste dann völlig am Ende ist.


    Ich weiss nicht genau was es ist aber muss ja irgendwie mit MYSQL und APACHE zusammen hängen, die Konfigurationen sind "Standart".
    Ich Poste sie gleich im Anhang.

    Die Seite basiert auf PHP und am Anfang jeder Dateie die irgendwas aus der Datenbank auslesen muss include ich die db_connect.php,
    die folgenden Inhalt hat:
    Code:
    <?php
    
      ######## Datenbank Einstellungen ########
      $db_server       = 'localhost';
      $db_benutzer     = 'user';
      $db_passwd       = 'passwd';
      $db_select_db    = 'datenbank';
      $db_table_inhalt = 'tabelle';
      #########################################
    
    mysql_pconnect("$db_server", "$db_benutzer", "$db_passwd") or die ("connection failed");
    mysql_select_db($db_select_db) or die ("Die Datenbank existiert nicht");
    
    ?>

    Ich habe mysql_connect schon gegen mysql_pconnect ausgetauscht in der Hoffnung das eine persistente Verbindung abhilfe schafft.

    Hier die Inhalte von

    apache2.conf

    Code:
    #
    # Based upon the NCSA server configuration files originally by Rob McCool.
    #
    # This is the main Apache server configuration file.  It contains the
    # configuration directives that give the server its instructions.
    # See <URL:http://httpd.apache.org/docs-2.1/> for detailed information about
    # the directives.
    #
    # Do NOT simply read the instructions in here without understanding
    # what they do.  They're here only as hints or reminders.  If you are unsure
    # consult the online docs. You have been warned.  
    #
    # The configuration directives are grouped into three basic sections:
    #  1. Directives that control the operation of the Apache server process as a
    #     whole (the 'global environment').
    #  2. Directives that define the parameters of the 'main' or 'default' server,
    #     which responds to requests that aren't handled by a virtual host.
    #     These directives also provide default values for the settings
    #     of all virtual hosts.
    #  3. Settings for virtual hosts, which allow Web requests to be sent to
    #     different IP addresses or hostnames and have them handled by the
    #     same Apache server process.
    #
    # Configuration and logfile names: If the filenames you specify for many
    # of the server's control files begin with "/" (or "drive:/" for Win32), the
    # server will use that explicit path.  If the filenames do *not* begin
    # with "/", the value of ServerRoot is prepended -- so "/var/log/apache2/foo.log"
    # with ServerRoot set to "" will be interpreted by the
    # server as "//var/log/apache2/foo.log".
    #
    
    ### Section 1: Global Environment
    #
    # The directives in this section affect the overall operation of Apache,
    # such as the number of concurrent requests it can handle or where it
    # can find its configuration files.
    #
    
    #
    # ServerRoot: The top of the directory tree under which the server's
    # configuration, error, and log files are kept.
    #
    # NOTE!  If you intend to place this on an NFS (or otherwise network)
    # mounted filesystem then please read the LockFile documentation (available
    # at <URL:http://httpd.apache.org/docs-2.1/mod/mpm_common.html#lockfile>);
    # you will save yourself a lot of trouble.
    #
    # Do NOT add a slash at the end of the directory path.
    #
    ServerRoot "/etc/apache2"
    
    #
    # The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
    #
    #<IfModule !mpm_winnt.c>
    #<IfModule !mpm_netware.c>
    LockFile /var/lock/apache2/accept.lock
    #</IfModule>
    #</IfModule>
    
    #
    # PidFile: The file in which the server should record its process
    # identification number when it starts.
    #
    PidFile /var/run/apache2.pid
    
    #
    # Timeout: The number of seconds before receives and sends time out.
    #
    Timeout 300
    
    #
    # KeepAlive: Whether or not to allow persistent connections (more than
    # one request per connection). Set to "Off" to deactivate.
    #
    KeepAlive On
    
    #
    # MaxKeepAliveRequests: The maximum number of requests to allow
    # during a persistent connection. Set to 0 to allow an unlimited amount.
    # We recommend you leave this number high, for maximum performance.
    #
    MaxKeepAliveRequests 100
    
    #
    # KeepAliveTimeout: Number of seconds to wait for the next request from the
    # same client on the same connection.
    #
    KeepAliveTimeout 15
    
    ##
    ## Server-Pool Size Regulation (MPM specific)
    ## 
    
    # prefork MPM
    # StartServers: number of server processes to start
    # MinSpareServers: minimum number of server processes which are kept spare
    # MaxSpareServers: maximum number of server processes which are kept spare
    # MaxClients: maximum number of server processes allowed to start
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_prefork_module>
        StartServers          10
        MinSpareServers       20
        MaxSpareServers      70
        MaxClients          255
        MaxRequestsPerChild   0
    </IfModule>
    
    # worker MPM
    # StartServers: initial number of server processes to start
    # MaxClients: maximum number of simultaneous client connections
    # MinSpareThreads: minimum number of worker threads which are kept spare
    # MaxSpareThreads: maximum number of worker threads which are kept spare
    # ThreadsPerChild: constant number of worker threads in each server process
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_worker_module>
        StartServers          2
        MaxClients          150
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadsPerChild      25
        MaxRequestsPerChild   0
    </IfModule>
    
    User www-data
    Group www-data
    
    #
    # AccessFileName: The name of the file to look for in each directory
    # for additional configuration directives.  See also the AllowOverride
    # directive.
    #
    
    AccessFileName .htaccess
    
    #
    # The following lines prevent .htaccess and .htpasswd files from being 
    # viewed by Web clients. 
    #
    <Files ~ "^\.ht">
        Order allow,deny
        Deny from all
    </Files>
    
    TypesConfig /etc/mime.types
    
    #
    # DefaultType is the default MIME type the server will use for a document
    # if it cannot otherwise determine one, such as from filename extensions.
    # If your server contains mostly text or HTML documents, "text/plain" is
    # a good value.  If most of your content is binary, such as applications
    # or images, you may want to use "application/octet-stream" instead to
    # keep browsers from trying to display binary files as though they are
    # text.
    #
    DefaultType text/plain
    
    
    #
    # HostnameLookups: Log the names of clients or just their IP addresses
    # e.g., www.apache.org (on) or 204.62.129.132 (off).
    # The default is off because it'd be overall better for the net if people
    # had to knowingly turn this feature on, since enabling it means that
    # each client request will result in AT LEAST one lookup request to the
    # nameserver.
    #
    HostnameLookups Off
    
    # ErrorLog: The location of the error log file.
    # If you do not specify an ErrorLog directive within a <VirtualHost>
    # container, error messages relating to that virtual host will be
    # logged here.  If you *do* define an error logfile for a <VirtualHost>
    # container, that host's errors will be logged there and not here.
    #
    ErrorLog /var/log/apache2/error.log
    
    #
    # LogLevel: Control the number of messages logged to the error_log.
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    #
    LogLevel warn
    
    # Include module configuration:
    Include /etc/apache2/mods-enabled/*.load
    Include /etc/apache2/mods-enabled/*.conf
    
    # Include all the user configurations:
    Include /etc/apache2/httpd.conf
    
    # Include ports listing
    Include /etc/apache2/ports.conf
    
    # Include generic snippets of statements
    Include /etc/apache2/conf.d/
    
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    
    #
    # ServerTokens
    # This directive configures what you return as the Server HTTP response
    # Header. The default is 'Full' which sends information about the OS-Type
    # and compiled in modules.
    # Set to one of:  Full | OS | Minor | Minimal | Major | Prod
    # where Full conveys the most information, and Prod the least.
    #
    ServerTokens Full
    
    #
    # Optionally add a line containing the server version and virtual host
    # name to server-generated pages (internal error documents, FTP directory 
    # listings, mod_status and mod_info output etc., but not CGI generated 
    # documents or custom error documents).
    # Set to "EMail" to also include a mailto: link to the ServerAdmin.
    # Set to one of:  On | Off | EMail
    #
    ServerSignature On
    
    <IfModule alias_module>
        #
        # Aliases: Add here as many aliases as you need (with no limit). The format is 
        # Alias fakename realname
        #
        # Note that if you include a trailing / on fakename then the server will
        # require it to be present in the URL.  So "/icons" isn't aliased in this
        # example, only "/icons/".  If the fakename is slash-terminated, then the 
        # realname must also be slash terminated, and if the fakename omits the 
        # trailing slash, the realname must also omit it.
        #
        # We include the /icons/ alias for FancyIndexed directory listings.  If
        # you do not use FancyIndexing, you may comment this out.
        #
        Alias /icons/ "/usr/share/apache2/icons/"
    
        <Directory "/usr/share/apache2/icons">
            Options Indexes MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
    
    </IfModule>
    
    #
    # Directives controlling the display of server-generated directory listings.
    #
    <IfModule mod_autoindex.c>
    
        #
        # IndexOptions: Controls the appearance of server-generated directory
        # listings.
        #
        IndexOptions FancyIndexing VersionSort HTMLTable NameWidth=*
    
        #
        # AddIcon* directives tell the server which icon to show for different
        # files or filename extensions.  These are only displayed for
        # FancyIndexed directories.
        #
        AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
    
        AddIconByType (TXT,/icons/text.gif) text/*
        AddIconByType (IMG,/icons/image2.gif) image/*
        AddIconByType (SND,/icons/sound2.gif) audio/*
        AddIconByType (VID,/icons/movie.gif) video/*
    
        AddIcon /icons/binary.gif .bin .exe
        AddIcon /icons/binhex.gif .hqx
        AddIcon /icons/tar.gif .tar
        AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
        AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
        AddIcon /icons/a.gif .ps .ai .eps
        AddIcon /icons/layout.gif .html .shtml .htm .pdf
        AddIcon /icons/text.gif .txt
        AddIcon /icons/c.gif .c
        AddIcon /icons/p.gif .pl .py
        AddIcon /icons/f.gif .for
        AddIcon /icons/dvi.gif .dvi
        AddIcon /icons/uuencoded.gif .uu
        AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
        AddIcon /icons/tex.gif .tex
        AddIcon /icons/bomb.gif core
    
        AddIcon /icons/back.gif ..
        AddIcon /icons/hand.right.gif README
        AddIcon /icons/folder.gif ^^DIRECTORY^^
        AddIcon /icons/blank.gif ^^BLANKICON^^
    
        #
        # DefaultIcon is which icon to show for files which do not have an icon
        # explicitly set.
        #
        DefaultIcon /icons/unknown.gif
    
        #
        # AddDescription allows you to place a short description after a file in
        # server-generated indexes.  These are only displayed for FancyIndexed
        # directories.
        # Format: AddDescription "description" filename
        #
        #AddDescription "GZIP compressed document" .gz
        #AddDescription "tar archive" .tar
        #AddDescription "GZIP compressed tar archive" .tgz
    
        #
        # ReadmeName is the name of the README file the server will look for by
        # default, and append to directory listings.
        #
        # HeaderName is the name of a file which should be prepended to
        # directory indexes. 
        ReadmeName README.html
        HeaderName HEADER.html
    
        #
        # IndexIgnore is a set of filenames which directory indexing should ignore
        # and not include in the listing.  Shell-style wildcarding is permitted.
        #
        IndexIgnore .??* *~ *# RCS CVS *,v *,t 
    </IfModule>
    
    <IfModule mod_mime.c>
    
        #
        # AddType allows you to add to or override the MIME configuration
        # file mime.types for specific file types.
        #
        #AddType application/x-gzip .tgz
        #
        # AddEncoding allows you to have certain browsers uncompress
        # information on the fly. Note: Not all browsers support this.
        # Despite the name similarity, the following Add* directives have
        # nothing to do with the FancyIndexing customization directives above.
        #
        #AddEncoding x-compress .Z
        #AddEncoding x-gzip .gz .tgz
        #
        # If the AddEncoding directives above are commented-out, then you
        # probably should define those extensions to indicate media types:
        #
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
    
        #
        # DefaultLanguage and AddLanguage allows you to specify the language of 
        # a document. You can then use content negotiation to give a browser a 
        # file in a language the user can understand.
        #
        # Specify a default language. This means that all data
        # going out without a specific language tag (see below) will 
        # be marked with this one. You probably do NOT want to set
        # this unless you are sure it is correct for all cases.
        #
        # * It is generally better to not mark a page as 
        # * being a certain language than marking it with the wrong
        # * language!
        #
        # DefaultLanguage nl
        #
        # Note 1: The suffix does not have to be the same as the language
        # keyword --- those with documents in Polish (whose net-standard
        # language code is pl) may wish to use "AddLanguage pl .po" to
        # avoid the ambiguity with the common suffix for perl scripts.
        #
        # Note 2: The example entries below illustrate that in some cases 
        # the two character 'Language' abbreviation is not identical to 
        # the two character 'Country' code for its country,
        # E.g. 'Danmark/dk' versus 'Danish/da'.
        #
        # Note 3: In the case of 'ltz' we violate the RFC by using a three char
        # specifier. There is 'work in progress' to fix this and get
        # the reference data for rfc1766 cleaned up.
        #
        # Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
        # English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
        # Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
        # Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
        # Norwegian (no) - Polish (pl) - Portugese (pt)
        # Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
        # Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
        #
        AddLanguage ca .ca
        AddLanguage cs .cz .cs
        AddLanguage da .dk
        AddLanguage de .de
        AddLanguage el .el
        AddLanguage en .en
        AddLanguage eo .eo
        AddLanguage es .es
        AddLanguage et .et
        AddLanguage fr .fr
        AddLanguage he .he
        AddLanguage hr .hr
        AddLanguage it .it
        AddLanguage ja .ja
        AddLanguage ko .ko
        AddLanguage ltz .ltz
        AddLanguage nl .nl
        AddLanguage nn .nn
        AddLanguage no .no
        AddLanguage pl .po
        AddLanguage pt .pt
        AddLanguage pt-BR .pt-br
        AddLanguage ru .ru
        AddLanguage sv .sv
        AddLanguage zh-CN .zh-cn
        AddLanguage zh-TW .zh-tw
    </IfModule>
    
    <IfModule mod_negotiation.c>
        #
        # LanguagePriority allows you to give precedence to some languages
        # in case of a tie during content negotiation.
        #
        # Just list the languages in decreasing order of preference. We have
        # more or less alphabetized them here. You probably want to change this.
        #
        LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
    
        #
        # ForceLanguagePriority allows you to serve a result page rather than
        # MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
        # [in case no accepted languages matched the available variants]
        #
        ForceLanguagePriority Prefer Fallback
    
    </IfModule>
    
    <IfModule mod_mime.c>
        #
        # Specify a default charset for all pages sent out. This is
        # always a good idea and opens the door for future internationalisation
        # of your web site, should you ever want it. Specifying it as
        # a default does little harm; as the standard dictates that a page
        # is in iso-8859-1 (latin1) unless specified otherwise i.e. you
        # are merely stating the obvious. There are also some security
        # reasons in browsers, related to javascript and URL parsing
        # which encourage you to always set a default char set.
        #
        #AddDefaultCharset ISO-8859-1
    
        #
        # Commonly used filename extensions to character sets. You probably
        # want to avoid clashes with the language extensions, unless you
        # are good at carefully testing your setup after each change.
        # See http://www.iana.org/assignments/character-sets for the
        # official list of charset names and their respective RFCs.
        #
        AddCharset us-ascii    .ascii .us-ascii
        AddCharset ISO-8859-1  .iso8859-1  .latin1
        AddCharset ISO-8859-2  .iso8859-2  .latin2 .cen
        AddCharset ISO-8859-3  .iso8859-3  .latin3
        AddCharset ISO-8859-4  .iso8859-4  .latin4
        AddCharset ISO-8859-5  .iso8859-5  .cyr .iso-ru
        AddCharset ISO-8859-6  .iso8859-6  .arb .arabic
        AddCharset ISO-8859-7  .iso8859-7  .grk .greek
        AddCharset ISO-8859-8  .iso8859-8  .heb .hebrew
        AddCharset ISO-8859-9  .iso8859-9  .latin5 .trk
        AddCharset ISO-8859-10  .iso8859-10  .latin6
        AddCharset ISO-8859-13  .iso8859-13
        AddCharset ISO-8859-14  .iso8859-14  .latin8
        AddCharset ISO-8859-15  .iso8859-15  .latin9
        AddCharset ISO-8859-16  .iso8859-16  .latin10
        AddCharset ISO-2022-JP .iso2022-jp .jis
        AddCharset ISO-2022-KR .iso2022-kr .kis
        AddCharset ISO-2022-CN .iso2022-cn .cis
        AddCharset Big5        .Big5       .big5 .b5
        AddCharset cn-Big5     .cn-big5
        # For russian, more than one charset is used (depends on client, mostly):
        AddCharset WINDOWS-1251 .cp-1251   .win-1251
        AddCharset CP866       .cp866
        AddCharset KOI8      .koi8
        AddCharset KOI8-E      .koi8-e
        AddCharset KOI8-r      .koi8-r .koi8-ru
        AddCharset KOI8-U      .koi8-u
        AddCharset KOI8-ru     .koi8-uk .ua
        AddCharset ISO-10646-UCS-2 .ucs2
        AddCharset ISO-10646-UCS-4 .ucs4
        AddCharset UTF-7       .utf7
        AddCharset UTF-8       .utf8
        AddCharset UTF-16      .utf16
        AddCharset UTF-16BE    .utf16be
        AddCharset UTF-16LE    .utf16le
        AddCharset UTF-32      .utf32
        AddCharset UTF-32BE    .utf32be
        AddCharset UTF-32LE    .utf32le
        AddCharset euc-cn      .euc-cn
        AddCharset euc-gb      .euc-gb
        AddCharset euc-jp      .euc-jp
        AddCharset euc-kr      .euc-kr
        #Not sure how euc-tw got in - IANA doesn't list it???
        AddCharset EUC-TW      .euc-tw
        AddCharset gb2312      .gb2312 .gb
        AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2
        AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4
        AddCharset shift_jis   .shift_jis .sjis
    
        #
        # AddHandler allows you to map certain file extensions to "handlers":
        # actions unrelated to filetype. These can be either built into the server
        # or added with the Action directive (see below)
        #
        # To use CGI scripts outside of ScriptAliased directories:
        # (You will also need to add "ExecCGI" to the "Options" directive.)
        #
        #AddHandler cgi-script .cgi
    
        #
        # For files that include their own HTTP headers:
        #
        #AddHandler send-as-is asis
    
        #
        # For server-parsed imagemap files:
        #
        #AddHandler imap-file map
    
        #
        # For type maps (negotiated resources):
        # (This is enabled by default to allow the Apache "It Worked" page
        #  to be distributed in multiple languages.)
        #
        AddHandler type-map var
    
        #
        # Filters allow you to process content before it is sent to the client.
        #
        # To parse .shtml files for server-side includes (SSI):
        # (You will also need to add "Includes" to the "Options" directive.)
        #
        AddType text/html .shtml
        AddOutputFilter INCLUDES .shtml
    </IfModule>
    
    #
    # Action lets you define media types that will execute a script whenever
    # a matching file is called. This eliminates the need for repeated URL
    # pathnames for oft-used CGI file processors.
    # Format: Action media/type /cgi-script/location
    # Format: Action handler-name /cgi-script/location
    #
    
    #
    # Customizable error responses come in three flavors:
    # 1) plain text 2) local redirects 3) external redirects
    #
    # Some examples:
    #ErrorDocument 500 "The server made a boo boo."
    #ErrorDocument 404 /missing.html
    #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
    #ErrorDocument 402 http://www.example.com/subscription_info.html
    #
    
    #
    # Putting this all together, we can internationalize error responses.
    #
    # We use Alias to redirect any /error/HTTP_<error>.html.var response to
    # our collection of by-error message multi-language collections.  We use 
    # includes to substitute the appropriate text.
    #
    # You can modify the messages' appearance without changing any of the
    # default HTTP_<error>.html.var files by adding the line:
    #
    #   Alias /error/include/ "/your/include/path/"
    #
    # which allows you to create your own set of files by starting with the
    # /usr/share/apache2/error/include/ files and copying them to /your/include/path/, 
    # even on a per-VirtualHost basis.  The default include files will display
    # your Apache version number and your ServerAdmin email address regardless
    # of the setting of ServerSignature.
    #
    # The internationalized error documents require mod_alias, mod_include
    # and mod_negotiation.  To activate them, uncomment the following 30 lines.
    
    #    Alias /error/ "/usr/share/apache2/error/"
    #
    #    <Directory "/usr/share/apache2/error">
    #        AllowOverride None
    #        Options IncludesNoExec
    #        AddOutputFilter Includes html
    #        AddHandler type-map var
    #        Order allow,deny
    #        Allow from all
    #        LanguagePriority en cs de es fr it nl sv pt-br ro
    #        ForceLanguagePriority Prefer Fallback
    #    </Directory>
    #
    #    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
    #    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
    #    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
    #    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
    #    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
    #    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
    #    ErrorDocument 410 /error/HTTP_GONE.html.var
    #    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
    #    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
    #    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
    #    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
    #    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
    #    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
    #    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
    #    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
    #    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
    #    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
    
    <IfModule mod_setenvif.c>
        #
        # The following directives modify normal HTTP response behavior to
        # handle known problems with browser implementations.
        #
        BrowserMatch "Mozilla/2" nokeepalive
        BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
        BrowserMatch "RealPlayer 4\.0" force-response-1.0
        BrowserMatch "Java/1\.0" force-response-1.0
        BrowserMatch "JDK/1\.0" force-response-1.0
    
        #
        # The following directive disables redirects on non-GET requests for
        # a directory that does not include the trailing slash.  This fixes a 
        # problem with Microsoft WebFolders which does not appropriately handle 
        # redirects for folders with DAV methods.
        # Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
        #
        BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
        BrowserMatch "MS FrontPage" redirect-carefully
        BrowserMatch "^WebDrive" redirect-carefully
        BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
        BrowserMatch "^gnome-vfs/1.0" redirect-carefully
        BrowserMatch "^XML Spy" redirect-carefully
        BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
    </IfModule>
    
    #<IfModule mod_status.c>
        #
        # Allow server status reports generated by mod_status,
        # with the URL of http://servername/server-status
        # Change the ".example.com" to match your domain to enable.
        #
        #<Location /server-status>
        #    SetHandler server-status
        #    Order deny,allow
        #    Deny from all
        #    Allow from .example.com
        #</Location>
    #</IfModule>
    
    #<IfModule mod_info.c>
        #
        # Allow remote server configuration reports, with the URL of
        #  http://servername/server-info (requires that mod_info.c be loaded).
        # Change the ".example.com" to match your domain to enable.
        #
        #<Location /server-info>
        #    SetHandler server-info
        #    Order deny,allow
        #    Deny from all
        #    Allow from .example.com
        #</Location>
    #</IfModule>
    
    # Include the virtual host configurations:
    Include /etc/apache2/sites-enabled/
    my.cnf

    Code:
    #
    # The MySQL database server configuration file.
    #
    # You can copy this to one of:
    # - "/etc/mysql/my.cnf" to set global options,
    # - "~/.my.cnf" to set user-specific options.
    # 
    # One can use all long options that the program supports.
    # Run program with --help to get a list of available options and with
    # --print-defaults to see which it would actually understand and use.
    #
    # For explanations see
    # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
    
    # This will be passed to all mysql clients
    # It has been reported that passwords should be enclosed with ticks/quotes
    # escpecially if they contain "#" chars...
    # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
    [client]
    port		= 3306
    socket		= /var/run/mysqld/mysqld.sock
    
    # Here is entries for some specific programs
    # The following values assume you have at least 32M ram
    
    # This was formally known as [safe_mysqld]. Both versions are currently parsed.
    [mysqld_safe]
    socket		= /var/run/mysqld/mysqld.sock
    nice		= 0
    
    [mysqld]
    #
    # * Basic Settings
    #
    user		= mysql
    pid-file	= /var/run/mysqld/mysqld.pid
    socket		= /var/run/mysqld/mysqld.sock
    port		= 3306
    basedir		= /usr
    datadir		= /var/lib/mysql
    tmpdir		= /tmp
    language	= /usr/share/mysql/english
    skip-external-locking
    #
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address		= 127.0.0.1
    #
    # * Fine Tuning
    #
    key_buffer		= 16M
    max_allowed_packet	= 16M
    thread_stack		= 128K
    thread_cache_size	= 8
    #max_connections        = 100
    #table_cache            = 64
    #thread_concurrency     = 10
    #
    # * Query Cache Configuration
    #
    query_cache_limit       = 1M
    query_cache_size        = 64M
    query_cache_type	= 1
    #
    # * Logging and Replication
    #
    # Both location gets rotated by the cronjob.
    # Be aware that this log type is a performance killer.
    #log		= /var/log/mysql/mysql.log
    #
    # Error logging goes to syslog. This is a Debian improvement :)
    #
    # Here you can see queries with especially long duration
    #log_slow_queries	= /var/log/mysql/mysql-slow.log
    #long_query_time = 2
    #log-queries-not-using-indexes
    #
    # The following can be used as easy to replay backup logs or for replication.
    #server-id		= 1
    log_bin			= /var/log/mysql/mysql-bin.log
    # WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!
    expire_logs_days	= 10
    max_binlog_size         = 100M
    #binlog_do_db		= include_database_name
    #binlog_ignore_db	= include_database_name
    #
    # * BerkeleyDB
    #
    
    # Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
    skip-bdb
    #
    # * InnoDB
    #
    # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
    # Read the manual for more InnoDB related options. There are many!
    # You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
    #skip-innodb
    #
    # * Security Features
    #
    # Read the manual, too, if you want chroot!
    # chroot = /var/lib/mysql/
    #
    # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
    #
    # ssl-ca=/etc/mysql/cacert.pem
    # ssl-cert=/etc/mysql/server-cert.pem
    # ssl-key=/etc/mysql/server-key.pem
    
    
    
    [mysqldump]
    quick
    quote-names
    max_allowed_packet	= 16M
    
    [mysql]
    #no-auto-rehash	# faster start of mysql but no tab completition
    
    [isamchk]
    key_buffer		= 16M
    
    #
    # * NDB Cluster
    #
    # See /usr/share/doc/mysql-server-*/README.Debian for more information.
    #
    # The following configuration is read by the NDB Data Nodes (ndbd processes)
    # not from the NDB Management Nodes (ndb_mgmd processes).
    #
    # [MYSQL_CLUSTER]
    # ndb-connectstring=127.0.0.1
    
    
    #
    # * IMPORTANT: Additional settings that can override those from this file!
    #
    !includedir /etc/mysql/conf.d/

  2. #2
    Master of Disaster Avatar von marcdevil
    Registriert seit
    Apr 2001
    Beiträge
    2.008
    zu 99% ist die php programmierung "schuld", da gibts meist viel optimierungspotential. Ansonsten helfen phpacceleratoren, caching, ein vorgeschalteter reverse proxy auf einem extra Server und das auslagern der DB auf einen extra Server. schau dir mal den Wikipediaserverpark an: http://de.wikipedia.org/wiki/Bild:Wi...2006-05-09.svg
    Geändert von marcdevil (15.08.08 um 15:42 Uhr)
    Ciao
    --
    Ubuntu@work, android@mobile, debian@server, win7@gamestation, Linux@Home-NAS, Ontap@Netapp, MacOSX@powerbook

  3. #3
    Registrierter Benutzer
    Registriert seit
    Sep 2003
    Beiträge
    2.990
    Zitat Zitat von helpme:if:u:can Beitrag anzeigen
    Die Seite basiert auf PHP und am Anfang jeder Dateie die irgendwas aus der Datenbank auslesen muss include ich die db_connect.php,
    die folgenden Inhalt hat:
    hallo und willkommen auf dem board

    ich vermute auch das es den php-scripten liegt

    schau dir mal an welche prozesse laufen, wenn der server langsam ist.

    schaue nach das prozesse die X minuten / stunden laufen gekillt werden.
    ( sql-abfrage - php-scripte, backup,... )

    was laueft auf dem server ( cms,... )
    ....

  4. #4
    Registrierter Benutzer
    Registriert seit
    Aug 2008
    Beiträge
    5
    Ok vllt sollte ich noch dazu sagen das es ert "so" ist seit dem ich den neuen VServer habe.

    Hatte vorher einen Webspace auf dem lief die Seite einbandfrei, auf dem VServer jetzt allerdings nicht mehr.

    Klar hat die Seite noch Verbesserungspotetial, aber dadurch das sie auf dem Webspace stabil lief und auf dem VServer nun nicht mehr, brachte mich ja auf den Trichter mit der Konfiguration des Apache und des MYSQL Servers.

    Kannst du dir die Konfigs mal ansehen und mir eventuell ein paar Tipps geben was ich ändern könnte?

    hallo und willkommen auf dem board

    ich vermute auch das es den php-scripten liegt

    schau dir mal an welche prozesse laufen, wenn der server langsam ist.

    schaue nach das prozesse die X minuten / stunden laufen gekillt werden.
    ( sql-abfrage - php-scripte, backup,... )

    was laueft auf dem server ( cms,... )
    Es laufen extrem viele

    apache2 prozesse

    und

    mysql hat teilweise eine Auslastung 50-80%
    Geändert von helpme:if:u:can (15.08.08 um 16:00 Uhr)

  5. #5
    ChaOS Coder Avatar von Sam Fisher
    Registriert seit
    Sep 2005
    Ort
    Klagenfurt
    Beiträge
    131
    Hallo !
    Ich weiß nicht ob das was hilft, aber wenn die MySQL Auslastung so hoch ist, hilft es vielleicht wenn du die Tabellen einmal optimierst. Das kannst du über phpMyAdmin ganz leicht machen.

    Viele Grüße
    Sam
    Ich programmiere also bin ich !

  6. #6
    Registrierter Benutzer
    Registriert seit
    Aug 2008
    Beiträge
    5
    In wie fern optimieren?
    Bzw. was soll ich da optimieren?

    Vllt könnte man ja bei der CFG des MYSQL and APACHE anfangen, wär hilfreich wenn die mal eine überfliegen könnte.

    edit:

    Ich habe jetzt schon öfter gelesen das ich den Apache bei einer Gewissen Zahl von Besuchern optimieren sollte

    Limit total processes with MaxClients
    If you use Apache to serve dynamic content, your simultaneous connections are severely limited. Exceed a certain number, and your system begins cannibalistic swapping, getting slower and slower until it dies. IMHO, a web server should automatically take steps to prevent this, but instead they seem to assume you have unlimited resources. Use trial & error to figure out how many Apache processes your server can handle, and set this value in MaxClients. Note: the Apache docs on this are misleading - if this limit is reached, clients are not "locked out", they are simply queued, and their access slows. Based on the value of MaxClients, you can estimate the values you need for StartServers, MinSpareServers, & MaxSpareServers.

    Force processes to reset with MaxRequestsPerChild
    Forcing your processes to die after a while makes them start over with low RAM usage, and this can reduce total memory usage in many situations. The less dynamic content you have, the more useful this will be. This is a game of catch-up, with your dynamic files constantly increasing total RAM usage, and restarting processes constantly reducing it. Experiment with MaxRequestsPerChild - even values as low as 20 may work well. But don't set it too low, because creating new processes does have overhead. You can figure out the best settings under load by examining "ps axu --sort:rss". A word of warning, using this is a bit like using heroin. The results can be impressive, but are NOT consistent - if the only way you can keep your server running is by tweaking this, you will eventually run into trouble. That being said, by tweaking MaxRequestsPerChild you may be able to increase MaxClients as much as 50%.
    Gleiche gilt für den MYSQL Server.

    Allerdings fehlen mir einfach die Werte die ich dort einsetzten kann/sollte.

    Vielleicht kann mir jemand mit ein paar Ehrfahrungswerten weiter helfen.

    ps: Ich habe auch gelesen das man einfach MYSQL oder APACHE "eingrenzen" soll damit sie nicht den kompletten Speicher "fressen" wie mach ich das.

    Bin wie man sieht noch recht un erfahren auf dem Gebiet Unix
    Geändert von helpme:if:u:can (15.08.08 um 18:21 Uhr)

  7. #7
    ChaOS Coder Avatar von Sam Fisher
    Registriert seit
    Sep 2005
    Ort
    Klagenfurt
    Beiträge
    131
    Hallo !
    Mit dem Optimieren der Tabellen meite ich folgendes: Siehe Screenshot.
    Es kann ja sein, dass dein CMS die Tabellen irgend wie mit Temp-Werten füllt und dass die Abfragen immer größer werden.

    Viele Grüße
    Sam
    Ich programmiere also bin ich !

  8. #8
    Registrierter Benutzer
    Registriert seit
    Aug 2008
    Beiträge
    5
    Hallo !
    Mit dem Optimieren der Tabellen meite ich folgendes: Siehe Screenshot.
    Es kann ja sein, dass dein CMS die Tabellen irgend wie mit Temp-Werten füllt und dass die Abfragen immer größer werden.

    Viele Grüße
    Sam
    Ok das habe ich dann schonmal gemacht, waren nicht alle Up to Date , vllt hats ja schon bisschen was gebracht, wenn mir jetzt noch jemand bei der apache und mysql optimierung was unter die arme greifen könnte indem er sich mal meine config anschaut und mir sagen kann was ich verbessern könnte
    (MaxClients,StartServers, MinSpareServers, & MaxSpareServers) dann wär ich schon nen ganzes Stück erleichterter und könnte die Kiste nochmal für nen Testlauf ins rennen schicken.

  9. #9
    Registrierter Benutzer Avatar von kworx
    Registriert seit
    Aug 2008
    Beiträge
    30
    Ich würde mal mit dem Deaktivieren der binlogs im mysql beginnen.
    Code:
    # The following can be used as easy to replay backup logs or for replication.
    #server-id		= 1
    # log_bin			= /var/log/mysql/mysql-bin.log
    # WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!
    # expire_logs_days	= 10
    #max_binlog_size         = 100M
    Beim Apache sind die Prozesse richtig hoch. Das ist zu viel für den Speicher. Ich würde sagen der swapt.
    Code:
    <IfModule mpm_prefork_module>
        StartServers          10
        MinSpareServers       20
        MaxSpareServers      70
        MaxClients          255
        MaxRequestsPerChild   0
    </IfModule>
    Schau dir mal top die Speicherbedarf von einem Prozess an. Dann gehst du mal mit MaxSpareServers deutlich unter 700MB (Anzahl Prozesse*Speicherbedarf) . MaxClients auch mal zurück auf 150 oder weniger.

    Grob geschätzt würde ich den Server hier ansiedeln.
    Code:
    <IfModule mpm_prefork_module>
        StartServers          15
        MinSpareServers       5
        MaxSpareServers       10
        MaxClients          70
        MaxRequestsPerChild   1000
    </IfModule>
    Danach beobachtest du mal weiter mit top und mytop was da passiert. Achte einfach mal darauf, dass dein mysql + apache noch Speicher für das System lassen.

    Vielleicht bekommst du so noch ein wenig mehr raus.
    Code:
    Timeout 60
    MaxKeepAliveRequests 1000
    KeepAliveTimeout 15
    Achso, was läuft den genau auf dem Server? CMS, Blog, Wiki,...? Wenn ja welches?
    Geändert von kworx (15.08.08 um 19:33 Uhr)

  10. #10
    Registrierter Benutzer
    Registriert seit
    Aug 2008
    Beiträge
    5
    Danke soweit erstmal kworx, das sind ja jetzt mal Werte mit denen man Arbeiten kann.

    Ich werde die Kiste mal so wie du es mir vorgeschlagen hast ins Rennen schicken und gucken was passiert, wenn jemand eine andere Meinung hat als kworx, dann einfach nochmal posten.

    Ich versuchs ertmal mit den Werten und werde mich melden um die "Ergebnisse" bekannt zu geben und eventuell mit euch noch nach zu bessern, danke erstmal allen Beteiligten für die durchaus hilfreichen Posts.

    Ich würde mal mit dem Deaktivieren der binlogs im mysql beginnen.
    Wie deaktiviere ich sie? einfach nach dev null umleiten ?!

    Hier mal mein jetztiger "top" bevor es los geht

    Code:
    top - 21:24:30 up 2 days, 23:59,  1 user,  load average: 0.00, 0.00, 0.00
    Tasks:  46 total,   2 running,  38 sleeping,   5 stopped,   1 zombie
    Cpu(s):  1.7%us,  0.4%sy,  0.0%ni, 97.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:   1048576k total,   312296k used,   736280k free,        0k buffers
    Swap:        0k total,        0k used,        0k free,        0k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    24515 www-data  16   0 97516 8312 3944 S  1.7  0.8   0:01.03 apache2
        1 root      18   0  6124  680  560 S  0.0  0.1   0:07.29 init
    30416 root      15   0  3728  596  456 S  0.0  0.1   0:00.56 syslogd
    30556 nobody    25   0 11912  604  392 S  0.0  0.1   0:00.00 danted
    30557 nobody    18   0 11912  484  272 S  0.0  0.0   0:00.00 danted
    30558 nobody    18   0 11912  388  172 S  0.0  0.0   0:00.00 danted
    30559 nobody    18   0 11912  388  172 S  0.0  0.0   0:00.00 danted
    30560 nobody    18   0 11912  388  172 S  0.0  0.0   0:00.00 danted
    30561 nobody    25   0 11912  388  172 S  0.0  0.0   0:00.00 danted
    30562 nobody    25   0 11912  452  240 S  0.0  0.0   0:00.00 danted
    30575 root      15   0 25844 1184  732 S  0.0  0.1   0:00.01 sshd
    30594 proftpd   15   0 53216 1772  572 S  0.0  0.2   0:02.25 proftpd
    30604 root      18   0 11496  940  716 S  0.0  0.1   0:00.85 cron
    16220 root      15   0 10596 1320  956 T  0.0  0.1   0:00.94 top
    16330 root      16   0 36780 2624 2068 S  0.0  0.3   0:00.05 sshd
    16332 userA  15   0 36912 1832 1240 R  0.0  0.2   0:00.45 sshd
    16333 userA  15   0 11024 2396 1376 S  0.0  0.2   0:00.00 bash
    17848 root      16   0 17988 1080  848 S  0.0  0.1   0:00.00 su
    17851 root      15   0 11192 2824 1408 S  0.0  0.3   0:00.23 bash
    18198 root      15   0 10600 1280  956 T  0.0  0.1   0:00.00 top
    18210 root      15   0 10600 1244  956 T  0.0  0.1   0:00.00 top
    15742 root      15   0  5108  620  504 T  0.0  0.1   0:00.00 tar
    24138 userA  15   0 65180 7896 2360 S  0.0  0.8   0:00.58 proftpd
    24352 root      25   0  5784 1340 1060 S  0.0  0.1   0:00.00 mysqld_safe
    24388 mysql     15   0  240m  39m 5460 S  0.0  3.8   0:02.81 mysqld
    24389 root      25   0  2636  532  452 S  0.0  0.1   0:00.00 logger
    24508 root      15   0 97256 8876 4832 S  0.0  0.8   0:00.04 apache2
    24509 www-data  15   0 73676 2612  700 S  0.0  0.2   0:00.00 apache2
    24524 www-data  18   0 99148  10m 4888 S  0.0  1.0   0:00.76 apache2
    24535 www-data  15   0 99052 9.9m 4148 S  0.0  1.0   0:00.42 apache2
    24564 www-data  15   0 97624 8656 4140 S  0.0  0.8   0:00.91 apache2
    24565 www-data  15   0 99032  10m 4388 S  0.0  1.0   0:00.26 apache2
    24566 www-data  15   0 99060  10m 4816 S  0.0  1.0   0:00.42 apache2
    25612 www-data  15   0 97516 8912 4532 S  0.0  0.8   0:00.09 apache2
    25614 userA  15   0 60968 3612 2320 S  0.0  0.3   0:00.00 proftpd
    25620 www-data  16   0 97516 8228 3872 S  0.0  0.8   0:00.08 apache2
    25644 www-data  15   0 97516 8912 4532 S  0.0  0.8   0:00.09 apache2
    25649 www-data  15   0 99024 9664 3720 S  0.0  0.9   0:00.26 apache2
    25656 root      15   0 10600 1272  956 T  0.0  0.1   0:00.00 top
    25666 www-data  15   0 97256 5316 1228 S  0.0  0.5   0:00.00 apache2
    25667 www-data  16   0 99016 9648 3712 S  0.0  0.9   0:00.25 apache2
    25672 www-data  15   0 97256 6280 2168 S  0.0  0.6   0:00.00 apache2
    25695 www-data  15   0     0    0    0 Z  0.0  0.0   0:00.00 apache2 <defunct>
    25696 www-data  15   0 97388 7784 3520 S  0.0  0.7   0:00.00 apache2
    25699 www-data  18   0 97256 5308 1224 S  0.0  0.5   0:00.00 apache2
    25716 root      15   0 10596 1284  956 R  0.0  0.1   0:00.00 top
    Geändert von helpme:if:u:can (15.08.08 um 20:27 Uhr)

  11. #11
    Registrierter Benutzer Avatar von kworx
    Registriert seit
    Aug 2008
    Beiträge
    30
    Wie deaktiviere ich sie? einfach nach dev null umleiten ?!
    Einfach auskommentieren wie hier...
    Code:
    # The following can be used as easy to replay backup logs or for replication.
    #server-id		= 1
    # log_bin			= /var/log/mysql/mysql-bin.log
    # WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!
    # expire_logs_days	= 10
    #max_binlog_size         = 100M
    Das könnte dir helfen mehr Geschwindigkeit aus der mysql Datenbank zu bekommen. Solange du keine Replikation auf einen anderen mysql Server brauchst ist deaktivieren unproblematisch.

    Die für den Apache angegebenen Werte sind nur eine Schätzung. Könnte sein, dass es super läuft oder eben auch nicht. Also probieren und Augen auf und Logs, Speicher und CPU erst einmal beobachten.

    Probier am besten mal den Server mit z.B. httperf gegen die Wand zu fahren.
    Aber nicht übertreiben, da ansonsten dein Provider nicht begeistert sein wird.

    Wenn der apache + mysql erst einmal laufen optimierst du am besten auf Antwortzeiten. Um so schneller dein Server die Besucher wieder los wird desto besser für deinen Server.
    Das bekommst du am besten mit cachen hin. mysql Cache erhöhen. PHP cachen mit z.B. http://eaccelerator.net/. Webseite optimieren http://www.websiteoptimization.com/.


    Hier mal mein jetztiger "top" bevor es los geht
    Erst neu gestartet? Was ist denn mit deinem apache los?

    1. Der reserviert beinahe 100MB Speicher.
    Code:
    24508 root      15   0 97256 8876 4832 S  0.0  0.8   0:00.04 apache2
    Lädt der vielleicht zu viele unbenötigte Module?

    2. Da hängt sich was auf.
    Code:
    25695 www-data  15   0     0    0    0 Z  0.0  0.0   0:00.00 apache2 <defunct>
    Was sagt denn deine apache error.log?

  12. #12
    ZeroFire
    Gast
    Guten Tag,
    der Grund warum dein VServer so langsam wird liegt an deiner Datei "db_connect.php". Die öffnet bei jedem laden dauerhaft eine Verbindung zum mySQL Server und verlangsamt ihn dadurch bis zu seinem Tode.

    Änder die Datei wie folgt ab und das Problem sollte nicht mehr in dem Ausmaße auftreten.
    PHP-Code:
    <?php

      
    ######## Datenbank Einstellungen ########
      
    $db_server       'localhost';
      
    $db_benutzer     'user';
      
    $db_passwd       'passwd';
      
    $db_select_db    'datenbank';
      
    $db_table_inhalt 'tabelle';
      
    #########################################

    $link mysql_connect("$db_server""$db_benutzer""$db_passwd") or die ("mySQL Server: connection failed");
    mysql_select_db($db_select_db,$link) or die ("mySQL Server: Die Datenbank existiert nicht");

    ?>
    Zur Erklärung mysql_pconnect() öffnet dauerhaft eine Verbindung zum Server die über mehrere Seitenaufrufe bestehen bleibt, eignet sich also nur bei einer neuen Session. Da du aber immer eine neue Verbindung beim Seitenaufruf herstellst reicht mysql_connect die Verbindung schließt sich am Ende des Seitenaufrufes automatisch und gibt so die Ressourcen wieder frei.

    Wenn du deine Texte in der Datenbank im UTF-8 Format speicherst kann es zu fehlerhaften Aufrufen und falschen Darstellungen des Textes kommen. Um das zu verhindern füge noch folgende Zeile am Ende von "db_connect.php" hinzu.
    PHP-Code:
    mysql_query('set character set utf8;'); 
    Geändert von ZeroFire (16.08.08 um 23:36 Uhr)

  13. #13
    Registrierter Benutzer Avatar von UzumakiNaruto
    Registriert seit
    Feb 2008
    Ort
    Gifhorn
    Beiträge
    285
    Zitat Zitat von ZeroFire Beitrag anzeigen
    Guten Tag,
    der Grund warum dein VServer so langsam wird liegt an deiner Datei "db_connect.php". Die öffnet bei jedem laden dauerhaft eine Verbindung zum mySQL Server und verlangsamt ihn dadurch bis zu seinem Tode.

    Änder die Datei wie folgt ab und das Problem sollte nicht mehr in dem Ausmaße auftreten.
    PHP-Code:
    <?php

      
    ######## Datenbank Einstellungen ########
      
    $db_server       'localhost';
      
    $db_benutzer     'user';
      
    $db_passwd       'passwd';
      
    $db_select_db    'datenbank';
      
    $db_table_inhalt 'tabelle';
      
    #########################################

    $link mysql_connect("$db_server""$db_benutzer""$db_passwd") or die ("mySQL Server: connection failed");
    mysql_select_db($db_select_db,$link) or die ("mySQL Server: Die Datenbank existiert nicht");

    ?>
    Zur Erklärung mysql_pconnect() öffnet dauerhaft eine Verbindung zum Server die über mehrere Seitenaufrufe bestehen bleibt, eignet sich also nur bei einer neuen Session. Da du aber immer eine neue Verbindung beim Seitenaufruf herstellst reicht mysql_connect die Verbindung schließt sich am Ende des Seitenaufrufes automatisch und gibt so die Ressourcen wieder frei.

    Wenn du deine Texte in der Datenbank im UTF-8 Format speicherst kann es zu fehlerhaften Aufrufen und falschen Darstellungen des Textes kommen. Um das zu verhindern füge noch folgende Zeile am Ende von "db_connect.php" hinzu.
    PHP-Code:
    mysql_query('set character set utf8;'); 
    der TE sagte ja bereits, das er aus "verzweiflung" auf mysql_pconnect umgestellt habe, da die probleme auch schon mit mysql_connect nicht richtig laufen wollten.

    ich würde mir evtl. mal die php-scripte ansehen und manuell beim speicher freiräumen helfen mit unset($variable1, $variable2, ....)

Ähnliche Themen

  1. OpenSuse 10.3 mit Postfix und Spamschutz Teil 1
    Von be1001 im Forum Linux als Server
    Antworten: 13
    Letzter Beitrag: 15.05.08, 13:46
  2. Seit SpamAssassin geht nichts mehr
    Von be1001 im Forum Linux als Server
    Antworten: 3
    Letzter Beitrag: 06.02.08, 14:55
  3. Amavis -Antivir wird nicht geladen-
    Von be1001 im Forum Linux als Server
    Antworten: 4
    Letzter Beitrag: 04.02.08, 19:00
  4. Apache 1.3 mit PHP4 führt zu db_strerror_4002
    Von GaRRaT im Forum System installieren und konfigurieren
    Antworten: 1
    Letzter Beitrag: 14.11.04, 15:29
  5. Apache2 und die CPU-Last
    Von MaDmAsTeR im Forum Linux als Server
    Antworten: 3
    Letzter Beitrag: 12.09.04, 16:39

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •