ATS - Performance Related Questions - High

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

ATS - Performance Related Questions - High

Karthick S
Hi Team,

I would like to know few performance related information. We have capacity planning meeting for setting up a new cluster with AT. So your input will be a great value add in our capacity planning.

Questions:
1)  YTS(Yahoo Traffic Server) has some performance optimization which utilizes the RAID-10 level for effective cache lookup. Does this ATS also holds the similar type of feature which will gel well with RAID 10 level. If not we will go ahead with RAID 0 to save more disk space for larger cache. Currently we have 300GB cache on each ATS nodes.
2)    How does ATS scales with respect to CPU , Memory, Disk? We have our current production running with YTS and 16GB ram. Will ATS scale its performance If I am getting 24GB ram ? How ATS will scale with respect to hardware. Can you please give some insight about it.

3) What is the QPS of current ATS?

PS: Please treat this email as high priority, all your inputs will be valuable to me.

Regards,
Karthick
Reply | Threaded
Open this post in threaded view
|

Re: ATS - Performance Related Questions - High

Bryan Call
The performance is *much* better on ATS.  It really depends on your traffic patterns to determine how much better it will be.  Also, the CPU usage is much lower on ATS.

Some groups use RAID10 for ease of operation, but performance will be less then using the disk devices directly.

You can email internal mailing lists and I will give you more details.  Don't compile your own version of ATS and use the packages on dist.

-Bryan

On Nov 8, 2013, at 1:31 AM, Karthick S <[hidden email]> wrote:

> Hi Team,
>
> I would like to know few performance related information. We have capacity
> planning meeting for setting up a new cluster with AT. So your input will
> be a great value add in our capacity planning.
>
> Questions:
> 1)  YTS(Yahoo Traffic Server) has some performance optimization which
> utilizes the RAID-10 level for effective cache lookup. Does this ATS also
> holds the similar type of feature which will gel well with RAID 10 level.
> If not we will go ahead with RAID 0 to save more disk space for larger
> cache. Currently we have 300GB cache on each ATS nodes.
> 2)    How does ATS scales with respect to CPU , Memory, Disk? We have our
> current production running with YTS and 16GB ram. Will ATS scale its
> performance If I am getting 24GB ram ? How ATS will scale with respect to
> hardware. Can you please give some insight about it.
>
> 3) What is the QPS of current ATS?
>
> PS: Please treat this email as high priority, all your inputs will be
> valuable to me.
>
> Regards,
> Karthick

Reply | Threaded
Open this post in threaded view
|

Re: ATS - Performance Related Questions - High

Omid Kosari
Administrator
Bryan Call wrote
Don't compile your own version of ATS and use the packages on dist.
Unfortunately dists are a bit lazy to implement latest versions . How we can use 4.x on ubuntu ?
Reply | Threaded
Open this post in threaded view
|

Re: ATS - Performance Related Questions - High

Jean Baptiste Favre
Hello,

On 09/11/2013 09:13, Omid Kosari wrote:
> Bryan Call wrote
>> Don't compile your own version of ATS and use the packages on dist.
>
> Unfortunately dists are a bit lazy to implement latest versions . How we can
> use 4.x on ubuntu ?

You can backport it :)

But, since Ubuntu is based on Debian and Debian does not provides 4.x
yet, you'll have to adapt packaging from an earlier version. Using 3.3.2
version available in Debian experimental is a good start.

Another solution is to build ATS from source. But then, you'll loose
packaging advantages.

Regards,
Jean-Baptiste
Reply | Threaded
Open this post in threaded view
|

Re: ATS - Performance Related Questions - High

Reindl Harald

Am 09.11.2013 15:25, schrieb Jean Baptiste Favre:

> On 09/11/2013 09:13, Omid Kosari wrote:
>> Bryan Call wrote
>>> Don't compile your own version of ATS and use the packages on dist.
>>
>> Unfortunately dists are a bit lazy to implement latest versions . How we can
>> use 4.x on ubuntu ?
>
> You can backport it :)
>
> But, since Ubuntu is based on Debian and Debian does not provides 4.x
> yet, you'll have to adapt packaging from an earlier version. Using 3.3.2
> version available in Debian experimental is a good start.
>
> Another solution is to build ATS from source. But then, you'll loose
> packaging advantages
says who?

people which seriously maintain servers could/should learn how to make
packages and that is pretty sure doable on Debian systems too

-rw-r----- 1 builduser builduser 2,4K 2013-10-30 21:36 x264-latest.spec
[builduser@buildserver:/rpmbuild/SPECS]$ ls -lha *.spec | wc -l
82

[root@proxy:~]$ rpm -q trafficserver
trafficserver-4.0.2-2.fc18.20131027.rh.x86_64
________________________________________________

[builduser@buildserver:/rpmbuild/SPECS]$ cat trafficserver.spec
%global            debug_package    %{nil}

Summary:           Apache Trafficserver
Name:              trafficserver
Version:           4.0.2
Release:           2%{?dist}
License:           ASL 2.0
Group:             System Environment/Daemons
Source0:           <a href="http://www.apache.org/dist/%">http://www.apache.org/dist/%{name}/%{name}-%{version}.tar.bz2
Source1:           %{name}.service
Source2:           %{name}.tmpfilesd
Patch1:            trafficserver-404-not-found.patch
URL:               http://trafficserver.apache.org/index.html
BuildRequires:     autoconf
BuildRequires:     automake
BuildRequires:     expat-devel
BuildRequires:     gcc-c++
BuildRequires:     hwloc-devel
BuildRequires:     libtool
BuildRequires:     openssl-devel
BuildRequires:     pcre-devel
BuildRequires:     tcl-devel
BuildRequires:     xz-devel
BuildRequires:     zlib-devel
Requires:          systemd

%description
Apache Traffic Server is a fast, scalable and extensible HTTP/1.1 compliant caching proxy server

%package           devel
Summary:           Apache Traffic Server development libraries and header files
Group:             Development/Libraries
Requires:          %{name} = %{version}-%{release}
%description       devel

%package           manpages
Summary:           Trafficserver manuals

Group:             Applications/System

%description       manpages



%package           plugins

Summary:           Trafficserver plugins
Group:             Applications/System
%description       plugins

%prep
%setup -q
%patch1 -p1

%build
export CFLAGS="%{optflags} -fPIC -fPIE -fstack-protector-all -Wno-deprecated-declarations -Wno-error=unused-result"
export CXXFLAGS="%{optflags} -fPIC -fPIE -fstack-protector-all -Wno-deprecated-declarations -Wno-error=unused-result"
export LDFLAGS="-Wl,-z,now -Wl,-z,relro,-z,noexecstack -pie"
export SH_LDFLAGS="-Wl,-z,now -Wl,-z,relro,-z,noexecstack -pie"
./configure --enable-layout=Gentoo \
 --libdir=%{_libdir}/%{name} \
 --with-tcl=%{_libdir} \
 --with-jemalloc \
 --with-user=ats \
 --with-group=ats \
 --with-pic \
 --enable-shared  \
 --enable-reclaimable-freelist \
 --enable-linux-native-aio \
 --enable-hwloc \
 --disable-diags \
 --disable-debug \
 --disable-static
sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' -e
's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%{__make} %{?_smp_mflags}

%install
make install-strip DESTDIR=%{buildroot}
mkdir -p %{buildroot}%{_mandir}/man1
mkdir -p %{buildroot}/run/%{name}
cp doc/man/*.1 %{buildroot}%{_mandir}/man1/
mv %{buildroot}%{_mandir}/man1/enable.1 %{buildroot}%{_mandir}/man1/ts-enable.1
mv %{buildroot}%{_mandir}/man1/disable.1 %{buildroot}%{_mandir}/man1/ts-disable.1
mv %{buildroot}%{_mandir}/man1/exit.1 %{buildroot}%{_mandir}/man1/ts-exit.1
install -D -m 0644 -p %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service
install -D -m 0644 -p %{SOURCE2} %{buildroot}%{_prefix}/lib/tmpfiles.d/%{name}.conf
rm -rf %{buildroot}%{_docdir}/%{name}
rm -rf %{buildroot}%{_libdir}/perl5/
rm -f %{buildroot}%{_libdir}/%{name}/*.a
rm -f %{buildroot}%{_libdir}/%{name}/*.la
rm -f %{buildroot}%{_libdir}/%{name}/plugins/*.la
rm -f %{buildroot}%{_datarootdir}/perl5/Apache/TS.pm
rm -f %{buildroot}%{_datarootdir}/perl5/Apache/TS/AdminClient.pm
rm -f %{buildroot}%{_datarootdir}/perl5/Apache/TS/Config.pm
rm -f %{buildroot}%{_datarootdir}/perl5/Apache/TS/Config/Records.pm
rm -f %{buildroot}%{_bindir}/tspush
rm -f %{buildroot}%{_bindir}/traffic_shell
rm -f %{buildroot}%{_bindir}/traffic_sac
rm -f %{buildroot}%{_bindir}/trafficserver
rm -f %{buildroot}%{_bindir}/tstop
strip -s %{buildroot}%{_bindir}/traffic_cop
strip -s %{buildroot}%{_bindir}/traffic_line
strip -s %{buildroot}%{_bindir}/traffic_logcat
strip -s %{buildroot}%{_bindir}/traffic_logstats
strip -s %{buildroot}%{_bindir}/traffic_server
strip -s %{buildroot}%{_libdir}/%{name}/*.so*
strip -s %{buildroot}%{_libdir}/%{name}/plugins/*.so
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/internal
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/snapshots
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/ssl
mkdir -p %{buildroot}%{_docdir}/%{name}/etc/body_factory/default
chmod 0770 %{buildroot}%{_sysconfdir}/%{name}/internal
chmod 0770 %{buildroot}%{_sysconfdir}/%{name}/snapshots
chmod 0750 %{buildroot}%{_sysconfdir}/%{name}/ssl
chmod 0750 %{buildroot}%{_sysconfdir}/%{name}/body_factory
echo "%{_libdir}/%{name}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
mv %{buildroot}%{_sysconfdir}/%{name}/body_factory/default/* %{buildroot}%{_docdir}/%{name}/etc/body_factory/default/
mv %{buildroot}%{_sysconfdir}/%{name}/*.config %{buildroot}%{_docdir}/%{name}/etc/

%post
%{_sbindir}/ldconfig
%{_bindir}/systemctl --system daemon-reload 2> /dev/null > /dev/null
chown root:ats %{_sysconfdir}/%{name}/body_factory 2> /dev/null > /dev/null
chown root:ats %{_sysconfdir}/%{name}/ssl 2> /dev/null > /dev/null
chown ats:ats %{_sysconfdir}/%{name}/internal 2> /dev/null > /dev/null
chown ats:ats %{_sysconfdir}/%{name}/snapshots 2> /dev/null > /dev/null
exit 0

%pre
getent group ats >/dev/null || groupadd -r ats -g 176 &>/dev/null
getent passwd ats >/dev/null || useradd -r -u 176 -g ats -d / -s %{_sbindir}/nologin -c "Apache Traffic Server" ats
&>/dev/null
exit 0

%files
%dir %{_libdir}/%{name}
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/*
%{_bindir}/traffic*
%{_libdir}/%{name}/*.so.*
%{_unitdir}/%{name}.service
%{_prefix}/lib/tmpfiles.d/%{name}.conf
%attr(0770, ats, ats) %dir %{_var}/log/%{name}
%attr(0770, ats, ats) %dir /run/%{name}
%attr(0770, ats, ats) %dir %{_var}/cache/%{name}
%attr(0644, root, root) %{_sysconfdir}/ld.so.conf.d/*

%files devel
%{_bindir}/tsxs
%dir %{_includedir}/ts
%{_includedir}/ts/*
%{_libdir}/%{name}/*.so

%files manpages
%{_mandir}/man1/*
%{_mandir}/man3/*
%{_docdir}/%{name}/*

%files plugins
%dir %{_libdir}/%{name}/plugins
%{_libdir}/%{name}/plugins/*.so

%changelog
* Sun Oct 27 2013 Reindl Harald <[hidden email]>
- build with hwloc-support

* Tue Oct 15 2013 Reindl Harald <[hidden email]>
- update to 4.0.2 stable

* Mon Sep 2 2013 Reindl Harald <[hidden email]>
- update to 4.0.1 stable

* Sat Aug 24 2013 Reindl Harald <[hidden email]>
- update to 4.0.0-dev

* Fri Aug 9 2013 Reindl Harald <[hidden email]>
- update to 3.3.5-dev
- move default-configurations to "trafficserver-manpages" package
- move plugins to "trafficserver-plugins" package
- cleanup permissions
- ReadWriteDirectories=/etc/trafficserver/internal
- ReadWriteDirectories=/etc/trafficserver/snapshots
- remove unused files from bindir
- enable-reclaimable-freelist
- enable-linux-native-aio

* Wed Jul 31 2013 Reindl Harald <[hidden email]>
- update to 3.2.5
- add "--with-jemalloc" to configure-flags

* Tue Jun 25 2013 Reindl Harald <[hidden email]>
- fix rpath and add "%{_sysconfdir}/ld.so.conf.d/trafficserver-x86_64.conf"

* Tue Jun 11 2013 Reindl Harald <[hidden email]>
- Cleanup SPEC and hardening build
- split manpages in sub-package
- patch 404-response from "Not Found on Accelerator" to "Not Found" to avoid fingerprinting


signature.asc (271 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: ATS - Performance Related Questions - High

Jean Baptiste Favre
On 09/11/2013 15:38, Reindl Harald wrote:

>
> Am 09.11.2013 15:25, schrieb Jean Baptiste Favre:
>> On 09/11/2013 09:13, Omid Kosari wrote:
>>> Bryan Call wrote
>>>> Don't compile your own version of ATS and use the packages on dist.
>>>
>>> Unfortunately dists are a bit lazy to implement latest versions . How we can
>>> use 4.x on ubuntu ?
>>
>> You can backport it :)
>>
>> But, since Ubuntu is based on Debian and Debian does not provides 4.x
>> yet, you'll have to adapt packaging from an earlier version. Using 3.3.2
>> version available in Debian experimental is a good start.
>>
>> Another solution is to build ATS from source. But then, you'll loose
>> packaging advantages
>
> says who?
>
> people which seriously maintain servers could/should learn how to make
> packages and that is pretty sure doable on Debian systems too

If you build any software from source and install it outside packaging
system, then, yes, you loose packaging advantages.
You'll get harder times to upgrade it and/or deploy it.

That said, I agree any serious admin should learn how to package
software for his platform. And it's definitely doable on Debian :)

This gives you the opportunity to enhance package to make it suits
*your* needs. for exemple, integrating fixes which are not yet released
(TS-1821 for Linux native AIO, just as an example :) ), and/or enable
experimental modules.

That said, I guess I'm one of them, running Debian Wheezy :)

# ls -1d trafficserver*
trafficserver
trafficserver_4.0.2-1~bbc72+1_amd64.changes
trafficserver_4.0.2-1~bbc72+1_amd64.deb
trafficserver_4.0.2-1~bbc72+1.debian.tar.gz
trafficserver_4.0.2-1~bbc72+1.dsc
trafficserver-4.0.2.tar.bz2
trafficserver-dev_4.0.2-1~bbc72+1_amd64.deb

Regards,
Jean-Baptiste