Ticket eröffnen sehr langsam

Hilfe zu Znuny Problemen aller Art
Locked
XeroX
Znuny newbie
Posts: 25
Joined: 04 Sep 2009, 09:09
Znuny Version: 2.4.4

Ticket eröffnen sehr langsam

Post by XeroX »

Hallo,
ich setze zur Zeit OTRS 2.2.x auf einer Windowsmaschine ein. Das System is Produktiv und läuft einwandfrei. Im Rahmen eines Updates soll das ganze nun auf ein Linuxsystem portiert werden. Das funktioniet auch alles wunderbar, LDAPS etc.

Nun ist aber das Problem das bei ca. 8000 Benutzern in der customer_user das eröffnen eines Tickets, sprich das aufrufen der Maske, mehr als 5 Sekunden bei einem Benutzer dauert. Sprich der Apache bzw httpd auf RHEL5 erzeugt eine Last von 100%. Ich möchte mir nicht ausmalen wielange die Wartezeit ist, wenn mehrere Benutzer ein Ticket eröffnen wollen. Alles andere ist gewohnt schnell.

Das System ist eine virtuelle Maschine, allerdings haben wir es auch auf einer physischen Maschine (2x DualCore Xenon, 2GB RAM) getestet um die Virutalisierung als Fehlerquelle auszuschließen.

Apache::Reload, Apache::DBI und mod_perl ist auch ordnungsgemäß installiert.

Hat jemand eine Idee wo die Fehlerquelle ist ? Es erscheint der Eindruck das es an der großen Benutzerdatenbank liegt.

MfG
garwen
Znuny expert
Posts: 260
Joined: 03 Feb 2009, 16:51
Znuny Version: 2.4.7

Ticket eröffnen sehr langsam

Post by garwen »

Installier doch mal über die OTRS Paketverwaltung das Package "Support".
Damit bekommst Du im Admin Interface einen Link "Support Assessment". Das tested die Konfiguration des Servers und zeigt Dir mögliche Probleme auf.
Kannst da auch Performance Tests machen.
MfG
~Fredy

Produktiv: OTRS 3.0.11/ openSUSE 11.4 / Apache2, MySQL5 / Exchange 2010
XeroX
Znuny newbie
Posts: 25
Joined: 04 Sep 2009, 09:09
Znuny Version: 2.4.4

Ticket eröffnen sehr langsam

Post by XeroX »

Hallo,
das Support Package ist bereits installiert und auch alles im grünen Berreich.

Außer...
Apache ErrorLog:

Code: Select all

ERROR: OTRS-CGI-10 Perl: 5.8.8 OS: linux Time: Mon Sep 28 11:34:22 2009

 Message: Found no ID for 1!

 Traceback (2771):
   Module: Kernel::System::Queue::QueueGet (v1.110) Line: 821
   Module: Kernel::System::Ticket::TicketAcl (v1.412) Line: 6921
   Module: Kernel::System::Ticket::TicketTypeList (v1.412) Line: 1693
   Module: Kernel::Modules::AgentTicketPhone::_GetTypes (v1.113) Line: 1223
   Module: Kernel::Modules::AgentTicketPhone::Run (v1.113) Line: 335
   Module: Kernel::System::Web::InterfaceAgent::Run (v1.43) Line: 819
   Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler (unknown version) Line: 48
   Module: (eval) (v1.88) Line: 204
   Module: ModPerl::RegistryCooker::run (v1.88) Line: 204
   Module: ModPerl::RegistryCooker::default_handler (v1.88) Line: 170
   Module: ModPerl::Registry::handler (v1.99) Line: 31
OTRS ErrorLog:

Code: Select all

[Mon Sep 28 11:30:55 2009][Error][Kernel::System::Queue::QueueGet][821] Found no ID for 1!
Schonmal danke für deine Hilfe

MfG
Joyner
Znuny expert
Posts: 185
Joined: 08 Feb 2008, 14:49
Znuny Version: 2.2.8
Location: Berlin

Ticket eröffnen sehr langsam

Post by Joyner »

Schau mal in die DB, ob es einen customer_user mit ID 1 gibt.
Produktiv: OTRS 2.4.7, CiCS 3.1.5, Eigenentwicklungen
β-Testing/Mirror: OTRS 2.4.7, ITSM 2.0.2, CiCS(::ITSM) 3.1.5 (2.1.6), Eigenentwicklungen OS: Win2003, XAMPP, Apache2.2/MySQL 5, Trac/SVN
garwen
Znuny expert
Posts: 260
Joined: 03 Feb 2009, 16:51
Znuny Version: 2.4.7

Ticket eröffnen sehr langsam

Post by garwen »

Oder hast Du die SystemID mal geändert ? Standardmässig ist die auf 10.
MfG
~Fredy

Produktiv: OTRS 3.0.11/ openSUSE 11.4 / Apache2, MySQL5 / Exchange 2010
XeroX
Znuny newbie
Posts: 25
Joined: 04 Sep 2009, 09:09
Znuny Version: 2.4.4

Ticket eröffnen sehr langsam

Post by XeroX »

Joyner wrote:Schau mal in die DB, ob es einen customer_user mit ID 1 gibt.
Hallo,
gibt es nicht.

Da ich auf der 2.2.x ein Export gemacht habe, dann wieder Importiert und die Update *.sql drüber gejagt.

Ich hab mal eben einen User dort angelegt. Allerdings kein Erfolg. Hab dan mal die Error Meldung genauer angeguckt, da steht was von Queue. Also neue Queue angelegt, ID1 verpasst, schwupp Meldung weg. Apache Fehlermeldungen auch weg.

Ticketsystem trotzdemlangsam.
garwen wrote:Oder hast Du die SystemID mal geändert ? Standardmässig ist die auf 10.

SystemID ist weiterhin 10.



Ergänzend ist vielleicht noch zu erwähnen.
mysqld kurzzeitig ~10%
httpd ~5 Sekunden 100%

-----

Wenn mod_perl nich installiert ist geht einfach "perl" auf 100%. Also liegts am parsen von perl ?
XeroX
Znuny newbie
Posts: 25
Joined: 04 Sep 2009, 09:09
Znuny Version: 2.4.4

Ticket eröffnen sehr langsam

Post by XeroX »

Hallo,
also nach weiterem forschen steht fest das es an den ca. 8000 Benutzern in der Datenbank liegt.

Aber das kann doch nicht sein das es dann so exterm langsam wird ? OTRS selbst werden ja wohl auch mehr als 8000 Benutzer im eigenen System haben ;)
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Ticket eröffnen sehr langsam

Post by jojo »

Wie sieht denn die ACL aus?
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
XeroX
Znuny newbie
Posts: 25
Joined: 04 Sep 2009, 09:09
Znuny Version: 2.4.4

Ticket eröffnen sehr langsam

Post by XeroX »

jojo wrote:Wie sieht denn die ACL aus?
access_log vom Apache ?

Dazu sagen muss ich, es ist noch kein produktivsystem. Das Produktivsystem arbeitet noch auf 2.2.x auf Windows.
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Ticket eröffnen sehr langsam

Post by jojo »

ACL vom OTRS, ist hier eine definiert. Die Fehlermeldung sieht so aus...
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
XeroX
Znuny newbie
Posts: 25
Joined: 04 Sep 2009, 09:09
Znuny Version: 2.4.4

Ticket eröffnen sehr langsam

Post by XeroX »

So wie ich das in der Sysconfig sehe, gibt es eine Ticket ACL. Allerdings ist diese ausgeschaltet.

Übrigens sind auch keine Tickets im System, außer 2 Stück zum testen.
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Ticket eröffnen sehr langsam

Post by jojo »

und in der Config.pm? Welche Module sind installiert?
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
XeroX
Znuny newbie
Posts: 25
Joined: 04 Sep 2009, 09:09
Znuny Version: 2.4.4

Ticket eröffnen sehr langsam

Post by XeroX »

Hallo,
in der config.pm auch nicht, schau ich direkt morgen früh nach. Module sind 2 Stück installiert, das Support Module und FAQ, wobei ersteres scheinbar Standard ist.

Danke schonmal
horstbalder
Znuny newbie
Posts: 7
Joined: 30 Sep 2009, 17:30
Znuny Version: 2.4.4

Ticket eröffnen sehr langsam

Post by horstbalder »

Hast du Dir schon mal von der Datenbank lange Abfragen loggen lassen?

Eventuell ist das eine Abfrage um ein DropDown Menü zu erstellen.
XeroX
Znuny newbie
Posts: 25
Joined: 04 Sep 2009, 09:09
Znuny Version: 2.4.4

Ticket eröffnen sehr langsam

Post by XeroX »

horstbalder wrote:Hast du Dir schon mal von der Datenbank lange Abfragen loggen lassen?
Ja. Allerdings steht dort nach dem "Neu erstellen" eine Tickets, wie vermutet nichts drin.
horstbalder wrote: ...um ein DropDown Menü zu erstellen.
Das ist auch meine Vermutung, allerdings würde das nicht den Sinn von AJAX entsprechen.

Code: Select all

[mysqld]
long_query_time=1
log-slow-queries=/var/log/mysql/log-slow-queries.log
Hier mal die Config.

Nicht wundern, es sind in der Auth.pm und Sync/Auth.pm kleine Anpassungen vorgenommen worden um eine Ausfallsicherheit zu garantieren und unter Gruppen per LDAP Abzufragen.
Aber wie gesagt, auch ohne LDAP das gleiche Problem.

Code: Select all

# --
# Kernel/Config.pm - Config file for OTRS kernel
# Copyright (C) 2001-2009 xxx, http://otrs.org/
# --
# $Id: Config.pm.dist,v 1.21 2009/02/16 12:01:43 tr Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --
#  Note:
#
#  -->> OTRS does have a lot of config settings. For more settings
#       (Notifications, Ticket::ViewAccelerator, Ticket::NumberGenerator,
#       LDAP, PostMaster, Session, Preferences, ...) see
#       Kernel/Config/Defaults.pm and copy your wanted lines into "this"
#       config file. This file will not be changed on update!
#
# --

package Kernel::Config;

sub Load {
    my $Self = shift;
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
    #                                                      #
    #         Start of your own config options!!!          #
    #                                                      #
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #

    # ---------------------------------------------------- #
    # database settings                                    #
    # ---------------------------------------------------- #
    # DatabaseHost
    # (The database host.)
    $Self->{'DatabaseHost'} = 'localhost';
    # Database
    # (The database name.)
    $Self->{'Database'} = 'xxx';
    # DatabaseUser
    # (The database user.)
    $Self->{'DatabaseUser'} = 'xxx';
    # DatabasePw
    # (The password of database user. You also can use bin/CryptPassword.pl
    # for crypted passwords.)
    $Self->{'DatabasePw'} = 'xxx';
    # DatabaseDSN
    # (The database DSN for MySQL ==> more: "man DBD::mysql")
    $Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";

    # (The database DSN for PostgreSQL ==> more: "man DBD::Pg")
    # if you want to use a local socket connection
	#$Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};";
    # if you want to use a tcpip connection
	#$Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};host=$Self->{DatabaseHost};";

    # ---------------------------------------------------- #
    # fs root directory
    # ---------------------------------------------------- #
    $Self->{Home} = '/opt/otrs';

    # ---------------------------------------------------- #
    # insert your own config settings "here"               #
    # config settings taken from Kernel/Config/Defaults.pm #
    # ---------------------------------------------------- #
    # $Self->{SessionUseCookie} = 0;
    # $Self->{'CheckMXRecord'} = 1;

    # ---------------------------------------------------- #

    # ---------------------------------------------------- #
    # data inserted by installer                           #
    # ---------------------------------------------------- #
    # $DIBI$
    $Self->{'SystemID'} = 10;
    $Self->{'SecureMode'} = 1;
    $Self->{'Organization'} = 'xxx';
    $Self->{'LogModule'} = 'Kernel::System::Log::File';
    $Self->{'LogModule::LogFile'} = '/tmp/otrs.log';
    $Self->{'FQDN'} = 'xxx';
    $Self->{'DefaultLanguage'} = 'de';
    $Self->{'AdminEmail'} = 'xxx@xxx.de';
    $Self->{'DefaultCharset'} = 'utf-8';

    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
    #                                                      #
    #           Eigene Anpassungen          		   #
    #                                                      #
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #

    # --------------------------------------------------- #
    # authentication sync settings                        #
    # (enable agent data sync. after succsessful          #
    # authentication)                                     #
    # --------------------------------------------------- #

    $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host'} = 'xxx1';
    $Self->{'AuthSyncModule::LDAP::Host2'} = 'xxx2';
    $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'OU=xxx,DC=xx,DC=x,DC=xxx';
    $Self->{'AuthSyncModule::LDAP::UID'} = 'userPrincipalName';
    $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=x,OU=xxx,OU=xxx,DC=x,DC=x,DC=x';
    $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxx';
    $Self->{'AuthSyncModule::LDAP::Charset'} = 'cp1250';
    $Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';
    $Self->{'AuthSyncModule::LDAP::UserAttr'} = 'DN';
    $Self->{'AuthSyncModule::LDAP::UserSyncRolesDefinition'} = {



    };

    #$Self->{DatabaseUserTable}       = 'users';
    #$Self->{DatabaseUserTableUserID} = 'id';
    #$Self->{DatabaseUserTableUserPW} = 'pw';
    #$Self->{DatabaseUserTableUser}   = 'login';

	
    # ---------------------------------------------------- #
    # Agenten Authentifizierung am Active Directory        #
    # Server citywdc0002 per LDAP Abfrage                  #
    # Backupserver citywdc0001                             #
    # ---------------------------------------------------- #
    $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host'} = 'xxx1';
    $Self->{'AuthModule::LDAP::Host2'} = 'xxx2';
    $Self->{'AuthModule::LDAP::BaseDN'} = 'OU=xxx,DC=xx,DC=x,DC=xxx';
    $Self->{'AuthModule::LDAP::UID'} = 'userPrincipalName';
    $Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=xxx,OU=xxx,OU=xxx,DC=xxx,DC=xx,DC=xx';
    $Self->{'AuthModule::LDAP::SearchUserPw'} = 'xxx';	
    $Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
    $Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
    $Self->{'AuthModule::LDAP::GroupDN'} = 'cn=xxx,ou=xxx,ou=xxx,dc=xxx,dc=xx,dc=xxx';

#    $Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
#    $Self->{'AuthModule::HTTPBasicAuth::Replace'} = 'example_domain\\';
#    $Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} = '^(.+?)@.+?$';
#    $Self->{LoginURL} = 'http://host.example.com/not-authorised-for-otrs.html';
#    $Self->{LogoutURL} = 'http://host.example.com/thanks-for-using-otrs.html';


    # ---------------------------------------------------- #
    # Kunden Authentifizierung am Active Directory         #
    # Server citywdc0002 per LDAP Abfrage                  #
    # Backupserver citywdc0001                             #
    # ---------------------------------------------------- #
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'xxx1';
    $Self->{'Customer::AuthModule::LDAP::Host2'} = 'xxx2';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'ou=xxx,dc=xxx,dc=xxx,dc=xxx';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'userPrincipalName';
    $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
    $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=xxx,ou=OTRS,ou=xxx,dc=xxx,dc=xxx,dc=xxx';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxx';
    $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'cn=xxx,ou=OTRS,ou=xxx,dc=xxx,dc=xxx,dc=xxx';

    # --------------------------------------------------- #
    # Verschuesselung zwischen OTRS und Domain Controller #
    # over SSL (LDAP over SSL) LDAPS			   #
    # ---------------------------------------------------- #

    # Sync
    $Self->{'AuthSyncModule::LDAP::Params'} = {
        port    => '636',
        scheme => 'ldaps',
        verify => 'require',
        cafile => '/usr/local/cacerts/ROOTCA_DER.pem',
    };
	
    # AGENT
    $Self->{'AuthModule::LDAP::Params'} = {
        port    => '636',
        scheme => 'ldaps',
        verify => 'require',
        cafile => '/usr/local/cacerts/ROOTCA_DER.pem',
    };

    # KUNDEN
    $Self->{'Customer::AuthModule::LDAP::Params'} = {
        port    => '636',
        scheme => 'ldaps',
        verify => 'require',
        cafile => '/usr/local/cacerts/ROOTCA_DER.pem',
    };

	
    # ---------------------------------------------------- #
    # Kundenverwaltungs-Maske um Displayname, Telefon,     #
    # Abteilung und Amt erweitern                          #
    # ---------------------------------------------------- #
       $Self->{CustomerUser} = {
          Name => 'Database Backend',
          Module => 'Kernel::System::CustomerUser::DB',
          Params => {
             Table => 'users',
          },
          CustomerCompanySupport => 1,
          CustomerKey => 'login',
          CustomerID => 'distinguishedName',
          CustomerValid => 'valid_id',
          CustomerUserListFields => ['first_name', 'last_name', 'email'],
          CustomerUserSearchFields => ['first_name', 'last_name', 'email', 'displayname'],
          CustomerUserSearchPrefix => '',
          CustomerUserSearchSuffix => '*',
          CustomerUserSearchListLimit => 250,
          CustomerUserPostMasterSearchFields => ['email'],
          CustomerUserNameFields => ['salutation', 'first_name', 'last_name'],
          CustomerUserEmailUniqCheck => 1,
          Map => [
             # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
             [ 'UserSalutation', 'Salutation', 'salutation',  1, 0, 'var', '', 1 ],
             [ 'UserFirstname',  'Firstname',  'first_name',  1, 1, 'var', '', 1 ],
             [ 'UserLastname',   'Lastname',   'last_name',   1, 1, 'var', '', 1 ],
             [ 'UserDisplay',    'Displayname','displayname', 0, 0, 'var', '', 1 ],
             [ 'UserLogin',      'Username',   'login',       0, 1, 'var', '', 1 ],
             [ 'UserPassword',   'Password',   'pw',          0, 0, 'var', '', 1 ],
             [ 'UserEmail',      'Email',      'email',       1, 0, 'var', '', 1 ],
             [ 'UserTelephone',  'Telefon',    'telephone',   1, 0, 'var', '', 1 ],
             [ 'UserDepartment', 'Abteilung',  'department',  1, 0, 'var', '', 1 ],
             [ 'UserCustomerID', 'CustomerID', 'customer_id', 0, 1, 'var', '', 1 ],
             [ 'UserComment',    'Comment',    'comments',    1, 0, 'var', '', 1 ],
             [ 'ValidID',        'Valid',      'valid_id',    0, 1, 'int', '', 1 ],
          ],
       };
	
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
    #                                                      #
    #           End of your own config options!!!          #
    #                                                      #
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
$Self->{TicketIndexModule} = 'Kernel::System::Ticket::IndexAccelerator::RuntimeDB';

}

# ---------------------------------------------------- #
# needed system stuff (don't edit this)                #
# ---------------------------------------------------- #
use strict;
use warnings;

use vars qw(@ISA $VERSION);
use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');

use vars qw(@ISA $VERSION);
$VERSION = qw($Revision: 1.21 $)[1];

# -----------------------------------------------------#

1;
Locked