# Hardware Recommendation for 30 - 40 users

**URL:** https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135
**Category:** Technical assistance
**Created:** [August 21, 2018, 5:32am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135 "2018-08-21T05:32:20Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![anon28691334](https://community.zammad.org/letter_avatar_proxy/v4/letter/a/d26b3c/32.png) [@anon28691334](https://community.zammad.org/u/anon28691334)
#### Post date: [August 21, 2018, 5:32am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/1 "2018-08-21T05:32:20Z")

</div>

### Infos:

**Important:**  
**If you are a Zammad Support or hosted customer and experience a technical issue, please refer to: [support@zammad.com](mailto:support@zammad.com) using your zammad-hostname / or company contract.**

- Used Zammad version: 2.6.x
- Used Zammad installation source: (source, package, …) deb
- Operating system: ubuntu 16.04

your information in this thread [Memory usage in Zammad](https://community.zammad.org/t/memory-usage-in-zammad/373/7?u=danielduchon) and here [https://docs.zammad.org/en/latest/prerequisites-hardware.html](https://docs.zammad.org/en/latest/prerequisites-hardware.html) about the hardware requirements differ.

We need to host zammad for currently 30 - 40 concurrent users. Do you have a recommendation for that?

---

<div class="post-metadata">

### Author: ![MrGeneration](https://community.zammad.org/user_avatar/community.zammad.org/mrgeneration/32/9260_2.png) [@MrGeneration](https://community.zammad.org/u/MrGeneration)
#### Post date: [August 21, 2018, 6:41am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/2 "2018-08-21T06:41:00Z")

</div>

I’ve seen customer systems with 6 cores and 16GB RAM doing just fine with 30-50 users. At this state you should stick to SSDs or even better NVM as hard drive will be too slow and brake your system down.

The Scheduler has been optimized, but it may be that 40 Agents still need too much CPU time for zammad to keep up (sticky note here is background jobs and cti).

---

<div class="post-metadata">

### Author: ![chesty](https://community.zammad.org/user_avatar/community.zammad.org/chesty/32/237_2.png) [@chesty](https://community.zammad.org/u/chesty)
#### Post date: [August 21, 2018, 6:54am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/3 "2018-08-21T06:54:52Z")

</div>

I’ve got a 2 year old second hand server with 32 Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz cores and 128 gigs of memory (it was only $2k AUD) it doesn’t break a sweat with 10 concurrent users. It could easily run on 2 cores. memory is never wasted, I’m not sure how little memory I could get away with, but I’ve configure postgres and elasticsearch to make use of as much as possible.

With my limited experience I’ve found clock speed matters atm because the job queue runner is a single thread. If you have a choice between cores and clock speed go for less cores and higher clock speed. Things like ldap integration will add 100s of jobs to the queue every hour and some jobs take many seconds to process. The more agents logged in the more jobs added to the queue too as they work. If the job queue gets backed up their interface doesn’t block, they can still work, but there might be a delay for them to be notified of a new ticket.

The more tickets you have the more memory you can give to elasticsearch and postgres, the recommendation for elasticsearch is not to go above 30G for a single node. I’ve got 20k tickets, elasticesearch’s store size is 400M. I got a bit of headroom there.

postgres needs a bit of tuning, there will be a lot of updating the session table, with 10 users I see an occasional backlog of threads waiting to update it, sometimes 500ms. My postgres config is here [[SOLVED] High number of delayed\_jobs](https://community.zammad.org/t/solved-high-number-of-delayed-jobs/821/13?u=chesty)

---

<div class="post-metadata">

### Author: ![anon28691334](https://community.zammad.org/letter_avatar_proxy/v4/letter/a/d26b3c/32.png) [@anon28691334](https://community.zammad.org/u/anon28691334)
#### Post date: [August 21, 2018, 7:02am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/4 "2018-08-21T07:02:18Z")

</div>

ok, thanks a lot. I’ll give your information to our system-dispatcher.

We don’t use AD, but 4 mailboxes which receive about 50 to 60 mails per hour. that in combination with a slow login, costs us the most time at the moment.

---

<div class="post-metadata">

### Author: ![chesty](https://community.zammad.org/user_avatar/community.zammad.org/chesty/32/237_2.png) [@chesty](https://community.zammad.org/u/chesty)
#### Post date: [August 21, 2018, 7:09am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/5 "2018-08-21T07:09:37Z")

</div>

btw, the deadlock timeout setting I originally set didn’t fix anything and at 15 seconds it means if there’s a deadlock 2 or more threads will have to wait 15 seconds for it to timeout. the default of 1 second is fine, but if you’re seeing queries take longer than 1 second you could bump it up to just above the max query time.

---

<div class="post-metadata">

### Author: ![anon28691334](https://community.zammad.org/letter_avatar_proxy/v4/letter/a/d26b3c/32.png) [@anon28691334](https://community.zammad.org/u/anon28691334)
#### Post date: [August 21, 2018, 7:16am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/6 "2018-08-21T07:16:43Z")

</div>

ok, thank you. we’ll give that a try

---

<div class="post-metadata">

### Author: ![chesty](https://community.zammad.org/user_avatar/community.zammad.org/chesty/32/237_2.png) [@chesty](https://community.zammad.org/u/chesty)
#### Post date: [August 21, 2018, 7:27am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/7 "2018-08-21T07:27:43Z")

</div>

and I thought of 2 other things.

for SSDs the general recommendation is to set elevator=noop if you google elevator noop you should get hits for your distro on how to do it, I edit /etc/default/grub with

GRUB\_CMDLINE\_LINUX=“elevator=noop”

and run `update-grub`

and I have a shell script with

```auto
#!/bin/bash

if ["$1" != "performance" -a "$1" != "ondemand"]; then
        echo $0 '<performance|ondemand>'
        exit
fi

for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [-f $CPUFREQ] || continue; echo -n "$1" > $CPUFREQ; done

```

at 8am I set it to performance and at 6pm I set it to ondemand

---

<div class="post-metadata">

### Author: ![anon28691334](https://community.zammad.org/letter_avatar_proxy/v4/letter/a/d26b3c/32.png) [@anon28691334](https://community.zammad.org/u/anon28691334)
#### Post date: [August 29, 2018, 12:54pm UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/8 "2018-08-29T12:54:57Z")

</div>

Thanks a lot. It worked. We also gave 8GB for elasticsearch.

---

<div class="post-metadata">

### Author: ![anon28691334](https://community.zammad.org/letter_avatar_proxy/v4/letter/a/d26b3c/32.png) [@anon28691334](https://community.zammad.org/u/anon28691334)
#### Post date: [August 31, 2018, 9:32am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/9 "2018-08-31T09:32:48Z")

</div>

We run into another problem:  
After changing to better hardware, puma needs up to 100% every 5 minutes. With 24 cores this seems extremely high. Unfortunately, this also means that, as long as puma is running, no interaction in the web interface is possible and the users are partly kicked out (error 405 or 500). This is of course fatal for the introduction of a new system.

can anyone help us?

---

<div class="post-metadata">

### Author: ![chesty](https://community.zammad.org/user_avatar/community.zammad.org/chesty/32/237_2.png) [@chesty](https://community.zammad.org/u/chesty)
#### Post date: [August 31, 2018, 10:05am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/10 "2018-08-31T10:05:08Z")

</div>

100% is 1 cpu fully utilised, 1000% are 10 cpus fully utilised. What do the logs say?

---

<div class="post-metadata">

### Author: ![anon28691334](https://community.zammad.org/letter_avatar_proxy/v4/letter/a/d26b3c/32.png) [@anon28691334](https://community.zammad.org/u/anon28691334)
#### Post date: [September 3, 2018, 6:06am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/11 "2018-09-03T06:06:12Z")

</div>

Sorry for the late reply. Logs are looking good. No error-Messages besides the already known ([ERROR -- : Unable to get asset for 'customer': #\<NameError: uninitialized constant Customer\>](https://community.zammad.org/t/error-unable-to-get-asset-for-customer-nameerror-uninitialized-constant-customer/1165)). But what I see is that the CPU-consumption gets higher for each concurrent user and when we reached 6 concurrent users, we are at a 100% consumption.

---

<div class="post-metadata">

### Author: ![chesty](https://community.zammad.org/user_avatar/community.zammad.org/chesty/32/237_2.png) [@chesty](https://community.zammad.org/u/chesty)
#### Post date: [September 3, 2018, 7:22am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/12 "2018-09-03T07:22:25Z")

</div>

Something isn’t right, either a config issue or a bug.  
puma is at 100% right? that’s 1 core.  
Can’t suggest anything without seeing the processes running and logs (there are many different logs to look at, postgres, elasticsearch, zammad, syslog, probably more) and sometimes turning the zammad debug log on is required.

---

<div class="post-metadata">

### Author: ![anon28691334](https://community.zammad.org/letter_avatar_proxy/v4/letter/a/d26b3c/32.png) [@anon28691334](https://community.zammad.org/u/anon28691334)
#### Post date: [September 3, 2018, 8:03am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/13 "2018-09-03T08:03:42Z")

</div>

nope, puma has a consumption of near 100% of all cores.  
I’ll see if I can give you all needed information. what do you need in special? postgres, elasticsearch, zammad, syslog?

---

<div class="post-metadata">

### Author: ![chesty](https://community.zammad.org/user_avatar/community.zammad.org/chesty/32/237_2.png) [@chesty](https://community.zammad.org/u/chesty)
#### Post date: [September 3, 2018, 8:56am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/14 "2018-09-03T08:56:18Z")

</div>

it sounds like you need to turn zammad debugging on, I don’t really know how but there are examples in this forum from zammad core developers. You put some ruby file in /opt/zammad and run it.

try this one

- [  
  ![](https://community.zammad.org/user_avatar/community.zammad.org/chesty/64/237_1.png)  
 ](https://community.zammad.org/u/chesty)

> [@Ldap sync tcp errors](https://community.zammad.org/t/ldap-sync-tcp-errors/701/2):
>
> Hi @chesty - let’s see what we got here slight_smile please do the following: 1.) Create a file called debug\_issue.rb in your Zammad directory (usually /opt/zammad) 2.) Run the file from your Zammad directory via zammad run rails r debug\_issue.rb or rails r debug\_issue.rb as zammad user, depending on your installation source (package/source) 3.) Post the output here. Make sure all sensitive data is anonymized! If you want you can drop it as an email to [support@zammad.com](mailto:support@zammad.com). Please refer to th…

---

<div class="post-metadata">

### Author: ![anon28691334](https://community.zammad.org/letter_avatar_proxy/v4/letter/a/d26b3c/32.png) [@anon28691334](https://community.zammad.org/u/anon28691334)
#### Post date: [September 3, 2018, 9:12am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/15 "2018-09-03T09:12:30Z")

</div>

@anon29869905 the corresponding file seems only to be for LDAP-things. how should I rewrite it to cover our situation?

---

<div class="post-metadata">

### Author: ![chesty](https://community.zammad.org/user_avatar/community.zammad.org/chesty/32/237_2.png) [@chesty](https://community.zammad.org/u/chesty)
#### Post date: [September 3, 2018, 9:43am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/16 "2018-09-03T09:43:14Z")

</div>

I’m not sure, but I don’t think it’s just for ldap. The top block looks like a generic turn debugging on, the last line kicks off an ldap job, you don’t need the last line.

---

<div class="post-metadata">

### Author: ![anon28691334](https://community.zammad.org/letter_avatar_proxy/v4/letter/a/d26b3c/32.png) [@anon28691334](https://community.zammad.org/u/anon28691334)
#### Post date: [September 3, 2018, 9:55am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/17 "2018-09-03T09:55:07Z")

</div>

ok, I’ll give it a try  
edit: OK, didn’t worked-\> No Output and no debug\_issue.log file

---

<div class="post-metadata">

### Author: ![chesty](https://community.zammad.org/user_avatar/community.zammad.org/chesty/32/237_2.png) [@chesty](https://community.zammad.org/u/chesty)
#### Post date: [September 3, 2018, 10:12am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/18 "2018-09-03T10:12:49Z")

</div>

sorry, idk, maybe it doesn’t turn debugging on for already running processes but just the process on the bottom line? (the ldap line which I said wasn’t needed)  
No doubt thor will help you soon.

---

<div class="post-metadata">

### Author: ![MrGeneration](https://community.zammad.org/user_avatar/community.zammad.org/mrgeneration/32/9260_2.png) [@MrGeneration](https://community.zammad.org/u/MrGeneration)
#### Post date: [September 3, 2018, 10:14am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/19 "2018-09-03T10:14:31Z")

</div>

Thorsten is on holiday for 2 weeks - I cannot assist at this issue in the moment, sorry about that.

---

<div class="post-metadata">

### Author: ![chesty](https://community.zammad.org/user_avatar/community.zammad.org/chesty/32/237_2.png) [@chesty](https://community.zammad.org/u/chesty)
#### Post date: [September 3, 2018, 10:40am UTC](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135/20 "2018-09-03T10:40:45Z")

</div>

I found another way to turn debugging on.  
edit /opt/zammad/config/environments/production.rb

look for

```auto
  config.log_level = :info

```

change it to

```auto
  config.log_level = :debug

```

then restart zammad.  
there’s probably a better way, but that way works.

[Next page](https://community.zammad.org/t/hardware-recommendation-for-30-40-users/1135.md?page=2)
