extremly slow mysql queries cause server overload!? :O

This is an archive of the phpBB 2.0.x support forum. Support for phpBB2 has now ended.
Forum rules
Following phpBB2's EoL, this forum is now archived for reference purposes only.
Please see the following announcement for more information: viewtopic.php?f=14&t=1385785
Locked
joe7
Registered User
Posts: 9
Joined: Wed Jan 19, 2005 4:08 pm

extremly slow mysql queries cause server overload!? :O

Post by joe7 »

Hi!

For some reason phpbb (or it's queries) reappear in my mysql-slow.log again and again..these times serverload goes till 8-10 (while it's used to be under 2..normally)
So something in my queriing seems extremely bad..

Any idea what causes this? This happens every day 3-5times.."randomly" so not related to any other systemevent it seems

some of the mysql-slow log for "demonstration"

Code: Select all

/usr/sbin/mysqld, Version: 4.0.24_Debian-10-log, started with:
Time                 Id Command    Argument

# Time: 050626 17:41:55
# Query_time: 16  Lock_time: 0  Rows_sent: 15  Rows_examined: 60
SELECT pt.post_sub_title, u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq
, u.user_aim, u.user_yim, u.user_regdate, u.user_lastvisit, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig,
u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, u.user_allow_viewon
line, u.user_session_time, u.user_birthday, u.user_next_birthday_greeting, u.user_gender, p.*,  pt.post_text, pt.pos
t_subject, pt.bbcode_uid
        FROM phpbb_posts p, phpbb_users u, phpbb_posts_text pt
        WHERE p.topic_id = 211

                AND pt.post_id = p.post_id
                AND u.user_id = p.poster_id
        ORDER BY p.post_time DESC
        LIMIT 0, 25;

# Time: 050626 23:51:56
# Query_time: 13  Lock_time: 0  Rows_sent: 696240  Rows_examined: 696240
SELECT /*!40001 SQL_NO_CACHE */ * FROM `phpbb_search_wordmatch`;


# Time: 050625  0:49:03
# Query_time: 11  Lock_time: 0  Rows_sent: 0  Rows_examined: 0
UPDATE phpbb_config
        SET config_value = '100454'
            WHERE config_name = 'visit_counter';


Time                 Id Command    Argument
# Time: 050627 15:31:42
# Query_time: 17  Lock_time: 0  Rows_sent: 0  Rows_examined: 175
use petfoorum;
INSERT INTO phpbb_search_wordmatch (post_id, word_id, title_match)
                                SELECT 33749, word_id, 0
                                        FROM phpbb_search_wordlist
                                        WHERE word_text IN ('képzeljétek', 'történt', 'vasárnap', 'hármasban', 'délu
tán', 'párom', 'gyalog', 'pepszike', 'ölben', 'egy', 'szabadtéri', 'rendezvényen', 'vettünk', 'részt', 'nézelődtünk'
, 'nagyban', 'megakadt', 'szemünk', 'kicsiwestien', 'akit', 'szintén', 'cipeltek', 'gyorsan', 'megörültünk', 'oda',
'mentünk', 'barátkozni', 'faggattuk', 'gazdit', 'ez', 'kis', 'csöppség', 'honnan', 'való', 'mennyi', 'idős', 'kiderü
lt', 'hogy', 'kiskutya', 'hét', 'hetes', 'már', 'két', 'hete', 'srácnál', 'van', 'persze', 'minden', 'baja', 'kuttyn
ak', 'hasmenés', 'hasonlók', 'elmeséltem', 'pepszikét', 'hat', 'fél', 'hetesen', 'láttuk', 'először', 'csak', 'nyolc
', 'hozhattuk', 'erre', 'vonogatta', 'vállát', 'szépen', 'azt', 'mondta', 'nem', 'érdekli', 'most', 'azonnal', 'akar
t', 'kutyát', 'ennél', 'tenyésztőnél', 'elhozhatta', 'Állítólag', 'is', 'oltva', 'bár', 'oltási', 'könyv', 'körül',
'zűr', 'kérdeztem', 'hozta', 'kitől', 'vette', 'addigra', 'szerintem', 'voltam', 'olyan', 'kedves', 'úgyhogy', 'errő
l', 'mélyen', 'hallgatott', 'mindenesetre', 'hagytam', 'kutyussal', 'pepszit', 'nagyonnagyon', 'sajnáltam', 'sajnos'
, 'ilyen', 'storyk', 'mindig', 'jönnek', 'elő', 'ahogy', 'ember', 'járkel', 'világban', 'nálunk', 'telepen', 'havane
se', 'lehordták', 'kutyához', 'odaengedték', 'csodálkozom', 'még', 'az', 'kutya', 'úgy', 'ltászik', 'elég', 'szívós'
, 'mert', 'vagy', 'hónapja', 'náluk', 'növekedik', 'azon', 'megbotránkoztam', 'család', 'év', 'körüli', 'lányára', '
bízáák', 'aki', 'egyedül', 'hozza', 'póráz', 'nélkül', 'viszi', 'csoda', 'evett', 'fel', 'semmit', 'földről', 'futot
t', 'úttestre', 'lopták', 'a', 'lánytól', 'stb', 'számomra', 'teljesen', 'felelőtlennek', 'tűnik', 'hát', 'maximum',
 'tanácsolni', 'lehet', 'nekik', 'hordják', 'amíg', 'nincs', 'meg', 'oltása', 'ezt', 'többen', 'tették', 'kényszerít
eni');

# Time: 050627 15:32:05
# Query_time: 11  Lock_time: 0  Rows_sent: 0  Rows_examined: 0
UPDATE phpbb_users
                                                        SET user_session_logged = 1, user_session_time = 1119879114,
 user_session_page = 0
                                                        WHERE user_id = 63;

Any idea pls!? :/
lanzer
Registered User
Posts: 152
Joined: Wed Oct 10, 2001 10:00 am
Contact:

Post by lanzer »

First glance from your slow query log tells me that the search related queries and your mods are causing you most of your problems. Remember that most mods are built for feature, not for speed. If you have speed problems, then you might want to start with a fresh phpbb install and see if you are getting performance differences. If things are fast again, then it's time to go back and install the mods one by one to see which one has slow queries that caused the problems.

Other than that, there are hacks and mods for speeding up the search related functions but I don't have that info handy. You might want to ask around for more specific info regarding that.

Good luck!
joe7
Registered User
Posts: 9
Joined: Wed Jan 19, 2005 4:08 pm

normal gen time

Post by joe7 »

Thanks Man.

Certainly there is a difference between fresh install and mine (with P's cat.hier.mod..and couple of other mods..).
BUT, what is the "normal" good gen.time??
What can You say, what should it be for a nice install?
Both php and mysql side..
so how much should be the total generation time of the index, viewforum etc ?
What is Yours and other's? :)

tell me! :)
what hardver..and what result

thanks
espicom
Registered User
Posts: 17905
Joined: Wed Dec 22, 2004 1:14 am
Location: Woodstock, IL

Post by espicom »

# Time: 050626 23:51:56
# Query_time: 13 Lock_time: 0 Rows_sent: 696240 Rows_examined: 696240
SELECT /*!40001 SQL_NO_CACHE */ * FROM `phpbb_search_wordmatch`;


696,000 rows returned... I hope this was in a backup, and not a general query from the board!

A good way to figure out what is going on is to take the slow queries and ask MySQL why they took so long. If you have phpmyadmin, open the query window (SQL button when you have the database up), and enter the slow query, preceded by "EXPLAIN", as in:

Code: Select all

EXPLAIN SELECT  * FROM `phpbb_search_wordmatch`;
        table: phpbb_search_wordmatch
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 97
        Extra:
When you see things like "key: NULL", MySQL had to search EVERY row to find the information you asked for.

Usually, though, if you've got sufficient memory allocated to MySQL, this isn't a big factor. You might also look at your Apache configuration, to make sure it's not stopping to do reverse-DNS lookups unnecessarily.
Jeff
Fixing 1016/1030/1034 Errors | (obsolete link) | MySQL 4.1/5.x Client Error | phpBBv2 Logo in ACP
Support requests via PM are ignored!
"To be fully alive is to feel that everything is possible." - Eric Hoffer
joe7
Registered User
Posts: 9
Joined: Wed Jan 19, 2005 4:08 pm

Post by joe7 »

espicom wrote:
# Time: 050626 23:51:56
# Query_time: 13 Lock_time: 0 Rows_sent: 696240 Rows_examined: 696240
SELECT /*!40001 SQL_NO_CACHE */ * FROM `phpbb_search_wordmatch`;


696,000 rows returned... I hope this was in a backup, and not a general query from the board!


UHm thanks.
What's this "Query_time"? Is it in secs?

and what can be this /*!40001 SQL_NO_CACHE */ in the query? quite interesting...
and it was NOT a backup.. :O
although does not happening regurarly..gonna look after it

how to set slowquerytime, so everything over x secs goes to slowquerylog, not just this long ones?
espicom
Registered User
Posts: 17905
Joined: Wed Dec 22, 2004 1:14 am
Location: Woodstock, IL

Post by espicom »

Yes, query time is in seconds. The slow query log has anything that took more than 10 (default, changeable) seconds to run.

The "/*!40001 SQL_NO_CACHE */" is a way of telling MySQL something that isn't part of standard SQL, without breaking things for other SQL servers that might read the file. In this case, it's the instruction, "Don't buffer things at the server, just send them to me as you find them". This prevents a memory problem for the server.

The slow query time value is normally set in the my.cnf file; I don't have my manual handy to tell me how to do that, or if you can set it via an administrator query. Oh, wait... here's the manual....

Code: Select all

SET GLOBAL long_query_time = 8
Jeff
Fixing 1016/1030/1034 Errors | (obsolete link) | MySQL 4.1/5.x Client Error | phpBBv2 Logo in ACP
Support requests via PM are ignored!
"To be fully alive is to feel that everything is possible." - Eric Hoffer
joe7
Registered User
Posts: 9
Joined: Wed Jan 19, 2005 4:08 pm

Post by joe7 »

espicom wrote: Usually, though, if you've got sufficient memory allocated to MySQL, this isn't a big factor. You might also look at your Apache configuration, to make sure it's not stopping to do reverse-DNS lookups unnecessarily.


Unfortunately HostnameLookups=Off in config..
though im gonna attach my apache2 config here..maybe there are some stupid missetings in it..please correct me if Ya see that:

Code: Select all

ServerRoot "/etc/apache2"

# The LockFile directive sets the path to the lockfile used when Apache
# is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or
# USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at
# its default value. The main reason for changing it is if the logs
# directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL
# DISK. The PID of the main server process is automatically appended to
# the filename.

LockFile /var/lock/apache2/accept.lock

# 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 200

# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.


KeepAliveTimeout 10

##
## 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 prefork.c>
StartServers         5
MinSpareServers      5
MaxSpareServers     10
MaxClients          150
MaxRequestsPerChild  0
</IfModule>

# pthread MPM
# StartServers ......... initial  number of server processes to start
# OBMaxClients ........... maximum  number of server processes allowed to start
# 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 worker.c>
StartServers         2
MaxClients         500

#25rol by joe7
MinSpareThreads     15

MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

# perchild MPM
# NumServers ........... constant number of server processes
# StartThreads ......... initial  number of worker threads in each server process
# MinSpareThreads ...... minimum  number of worker threads which are kept spare
# MaxSpareThreads ...... maximum  number of worker threads which are kept spare
# MaxThreadsPerChild ... maximum  number of worker threads in each server process
# MaxRequestsPerChild .. maximum  number of connections per server process (then it dies)
<IfModule perchild.c>
NumServers           5
StartThreads         5
MinSpareThreads      5
MaxSpareThreads     10
MaxThreadsPerChild  20
MaxRequestsPerChild  0
AcceptMutex fcntl
</IfModule>

User www-data
Group www-data

# 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


# Global error log.
ErrorLog /var/log/apache2/error.log

# 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/[^.#]*

#Let's have some Icons, shall we?
Alias /icons/ "/usr/share/apache2/icons/"
<Directory "/usr/share/apache2/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

# Set up the default error docs.
#
# 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 401 "/errors/ErrorHandler.php?epage=error401"
ErrorDocument 404 "/errors/ErrorHandler.php?epage=error404"
ErrorDocument 403 "/errors/ErrorHandler.php?epage=error403"
#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/local/apache2/error/include/ files and
# copying them to /your/include/path/, even on a per-VirtualHost basis.


<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    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 es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>

    ErrorDocument part....blabla..for being shorter i deleted this in this post...
    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

</IfModule>
</IfModule>

DirectoryIndex index.html index.htm index.cgi index.pl index.php index.xhtml

# UserDir is now a module
#UserDir public_html
#UserDir disabled root

#<Directory /home/*/public_html>
#       AllowOverride FileInfo AuthConfig Limit
#       Options Indexes SymLinksIfOwnerMatch IncludesNoExec
#</Directory>

AccessFileName .htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

UseCanonicalName Off

TypesConfig /etc/mime.types
DefaultType text/plain

HostnameLookups Off

IndexOptions FancyIndexing VersionSort

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/*

# This really should be .jpg.

AddIcon /icons/binary.gif .bin .exe
AddIcon  part....blabla..for being shorter i deleted this in this post...


# This is from Matty J's patch. Anyone want to make the icons?
#AddIcon /icons/dirsymlink.jpg ^^SYMDIR^^
#AddIcon /icons/symlink.jpg ^^SYMLINK^^

DefaultIcon /icons/unknown.gif

ReadmeName README.html
HeaderName HEADER.html

IndexIgnore .??* *~ *# HEADER* RCS CVS *,t

AddEncoding x-compress Z
AddEncoding x-gzip gz tgz

AddLanguage da .dk
AddLanguage  part....blabla..for being shorter i deleted this in this post...

LanguagePriority hu en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw


#AddDefaultCharset      ISO-8859-2

AddCharset ISO-8859-1  .iso8859-1  .latin1
AddCharset  part....blabla..for being shorter i deleted this in this post...

#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

AddType application/x-tar .tgz

# To use CGI scripts outside /cgi-bin/:
#
#AddHandler cgi-script .cgi

# To use server-parsed HTML files
#
<FilesMatch "\.shtml(\..+)?$">
    SetOutputFilter INCLUDES
</FilesMatch>

# If you wish to use server-parsed imagemap files, use
#
#AddHandler imap-file map

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

#
# 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.
#

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully


ServerTokens Prod
ServerSignature Off

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/[^.#]*
anything bad, guys? :O
joe7
Registered User
Posts: 9
Joined: Wed Jan 19, 2005 4:08 pm

Post by joe7 »

MAybe not a good idea..
but how about using worker insted of prefork modell?
Would that do anything noticeable?..
User avatar
drathbun
Former Team Member
Posts: 12204
Joined: Thu Jun 06, 2002 3:51 pm
Location: TOPICS_TABLE
Contact:

Post by drathbun »

espicom wrote:
# Time: 050626 23:51:56
# Query_time: 13 Lock_time: 0 Rows_sent: 696240 Rows_examined: 696240
SELECT /*!40001 SQL_NO_CACHE */ * FROM `phpbb_search_wordmatch`;


696,000 rows returned... I hope this was in a backup, and not a general query from the board!

Interestingly enough, I've started logging slow queries, and this sql code

Code: Select all

SELECT /*!40001 SQL_NO_CACHE */ * FROM `phpbb_search_wordmatch`;
... shows up all the time. :shock: It does not appear to be in any of the code, anyway, as I've looked. Yet it is 37 of the 38 slow queries logged on my server since I started logging, so it's coming from somewhere. Anybody have an idea where it's coming from?

And on my board it's hitting 4,222,911 rows... :shock: :shock:
I blog about phpBB: phpBBDoctor blog
Still using phpbb2? So am I! Click below for details
Image
espicom
Registered User
Posts: 17905
Joined: Wed Dec 22, 2004 1:14 am
Location: Woodstock, IL

Post by espicom »

You are correct that there is no where in the PHPBB code that "SQL_NO_CACHE" appears, so it's not a PHPBB query. And, unfortunately, the slow query log doesn't list the user/host information with the query, so you can't check to see if it's coming from a particular process or not.

It would be nice to know, though! Do they occur at seemingly random intervals, or the same times each day?

Incidentally - do a GOOGLE search for "mytop". It's a very interesting tool for watching what the server is doing. It requires Perl and a few "extra" packages be installed, but it's helped me catch server crashes a few times...
Jeff
Fixing 1016/1030/1034 Errors | (obsolete link) | MySQL 4.1/5.x Client Error | phpBBv2 Logo in ACP
Support requests via PM are ignored!
"To be fully alive is to feel that everything is possible." - Eric Hoffer
User avatar
drathbun
Former Team Member
Posts: 12204
Joined: Thu Jun 06, 2002 3:51 pm
Location: TOPICS_TABLE
Contact:

Post by drathbun »

It's not just the "no cache" that bothers me. I searched for

Code: Select all

select * FROM `phpbb_search_wordmatch
and that query - by itself - doesn't appear. Anywhere. :-) So I'm just wondering where it's coming from, what process might be causing it to get kicked off.

But you know what? I figured it out. :-) Your question about checking the time for the query was spot on. Every night at 1:45 am I run a cron job that does a complete system backup for my board. Guess when the queries were all run. :lol: And of course, in order to do a backup, it is going to run a select * for the entire table. Boy do I feel stupid.

Thanks for pointing me in the right direction.
I blog about phpBB: phpBBDoctor blog
Still using phpbb2? So am I! Click below for details
Image
joe7
Registered User
Posts: 9
Joined: Wed Jan 19, 2005 4:08 pm

ideas?

Post by joe7 »

Any ideas about my apacheconf? Should i change something to better serv needs of phpbb?..
espicom
Registered User
Posts: 17905
Joined: Wed Dec 22, 2004 1:14 am
Location: Woodstock, IL

Re: ideas?

Post by espicom »

joe7 wrote: Any ideas about my apacheconf? Should i change something to better serv needs of phpbb?..


Sorry... I was busy sleeping at my desk... 8O

The only thing I'd say is to make sure your MySQL server is configured to handle at least 180 connections, because the setup you've got can (potentially) have 150 web clients trying to talk to it at one time.

If the MySQL server is on the same machine, consider moving it to its own, dedicated box, with a gig of RAM and fast disks. Sharing MySQL and Apache on one machine works, to a point, but under heavy load, they'll be fighting with each other over the system RAM. If you've got 4GB, that's not a big deal; 512MB will thrash the virtual RAM swap partition mightily.

I can tell you that our users notice the difference when we switch between our primary and secondary MySQL boxes - the primary has 2GB RAM, dual 2.6GHz processors, and an 800GB RAID 5 array. The secondary has 512MB RAM, a single 2.8GHz processor, and a 200GB hard drive. Both are dedicated, and the response times are fast enough, but it all gets "snappier" when "Fluffy" is up to bat. (The name comes from the nickname of the Boeing 737, "FLUF". Fat little ugly f......)
Jeff
Fixing 1016/1030/1034 Errors | (obsolete link) | MySQL 4.1/5.x Client Error | phpBBv2 Logo in ACP
Support requests via PM are ignored!
"To be fully alive is to feel that everything is possible." - Eric Hoffer
joe7
Registered User
Posts: 9
Joined: Wed Jan 19, 2005 4:08 pm

Re: ideas?

Post by joe7 »

espicom wrote: The only thing I'd say is to make sure your MySQL server is configured to handle at least 180 connections, because the setup you've got can (potentially) have 150 web clients trying to talk to it at one time.

If the MySQL server is on the same machine, consider moving it to its own, dedicated box, with a gig of RAM and fast disks.


Thanks, changed max_connections according to Your post..
Another Dedicated box is not yet an option..not so many users either atm..so it should serv this amount of users with good setup i think..
Locked

Return to “2.0.x Support Forum”

cron