Skip to content
This repository has been archived by the owner on Apr 21, 2023. It is now read-only.

Supporting pagespeed on ARM devices? #1213

Open
trefase opened this issue Jun 12, 2016 · 29 comments
Open

Supporting pagespeed on ARM devices? #1213

trefase opened this issue Jun 12, 2016 · 29 comments

Comments

@trefase
Copy link

trefase commented Jun 12, 2016

Is there any further plans on adding support for arm devices with ngx_pagespeed?

I think that theres s a growing demand with more and more providers selling and hosting servers based on the arm architecture..

@hillsp
Copy link
Contributor

hillsp commented Jun 13, 2016

We don't currently have plans to support ARM mostly because I don't think we've especially been peppered with requests for it.

We have a lot of library dependencies and I imagine at least some of them don't support ARM, which makes this a lot more painful.

@ruimnetob
Copy link

ruimnetob commented May 21, 2017

Will there be a mod_pagespeed supported for armhf? I am running a webserver on my Pi and would be great to have pagespeed there.
with IoT and these ARM System on chip there will be more and more people requesting this

@nachoparker
Copy link

+1 here, I am interested in trying this with NextCloudPi

@jposemescouilles
Copy link

I too am running a webserver on a Pi-like board and would be really interested in having this module.

@georges-2000
Copy link

+1 im interested in this module

@ashik-codes
Copy link

+1 It would be a really nice thing to have

@thegr33nhornet
Copy link

+1 ARM based servers are becoming much more mainstream.

@FalcoGer
Copy link

FalcoGer commented Feb 6, 2019

I to would like this to work on armv7 and armv8 (64bit) for a raspberry running apache.

@L422Y
Copy link

L422Y commented Oct 29, 2019

+1 really would be nice

@petter5
Copy link

petter5 commented Dec 11, 2019

+1 would love to have pagespeed for the pi4 - Raspbian - tried the Automated Install build from source, but no sucess,,,

@ashik-codes
Copy link

ashik-codes commented Dec 20, 2019 via email

@pilfs
Copy link

pilfs commented May 10, 2020

I have ngx_pagespeed running on aarch64 and armv7l.

You can find the PSOL binaries and instructions here:

https://gitlab.com/gusco/ngx_pagespeed_arm

I believe we are about to see ARM grow in the server space this year,
thought it would be a shame for ngx_pagespeed to miss out.

@jmarantz
Copy link
Contributor

jmarantz commented May 10, 2020 via email

@jsrz
Copy link

jsrz commented Jun 23, 2020

I tried @pilfs instructions and can verify that they do work. I tried it out on an AWS m6g instance.

That said, a few other things to note:

  • The ngx_pagespeed build script downloads pre-built binaries for PSOL. Thus, in order for that script to work on Arm machines, we will need pre-built binaries released for aarch64 (arm64) and armv7l.

  • The ngx_pagespeed script does offer a switch (-s) which tells it to build PSOL rather than download the pre-built binary. This script is broken. I ran it on both Arm and x86 instances. If this script weren't broken, then you would not necessarily need the pre-built PSOL binaries.

  • I was poking around at the patches @pilfs posted. I see a bunch of stuff around atomic operation intrinsics. There are legacy __sync, and newer __atomic intrinsics. I'd guess that there is room to improve performance, especially since newer Arm 8.2 added newer/improved atomic instructions. I don't claim to know what should be done, but it feels like there's room for lots of improvement.

All of that said, I think pilfs changes should be merged to get the Arm support in.

@Firegarden
Copy link

I too tried @pilfs instructions and they helped me move forward with my AWS M6g Arm instance. The concern I have is getting PSOL to build from source without needing the patch. For example a new version of pagespeed was released recently (1.14.36.1) and I am not sure if the arm patches are compatible.

Come on people AWS no longer supports x86 on their latest generation of boxes. This problem is not going away - can we pretty please solve this?

@Firegarden
Copy link

This problem is not going away - can we pretty please solve this?

@oschaaf
Copy link
Member

oschaaf commented Sep 30, 2020

@Firegarden I'd be happy to review pull requests related to this. Probably best to land this on branch 36 (corresponding to the 1.14.X releases).

@TLA020
Copy link

TLA020 commented Nov 24, 2020

Same issue here, trying to build a webserver on pi4 8gb, for some testing / tweaking.

adding module in ../incubator-pagespeed-ngx-latest-stable Architecture not supported: armv7l
Any news?

@Preen
Copy link

Preen commented Mar 1, 2021

+1

@Dade88
Copy link

Dade88 commented Mar 1, 2021

Totally needed on new AWS servers.

@Preen
Copy link

Preen commented Mar 1, 2021

yeah thats the case for me... dang

@adhasahar97
Copy link

Our whole infra is on AWS Graviton processor (arm64). Totally need it

@shauke
Copy link

shauke commented Jul 9, 2021

How about the Apple Silicon processors. ARM support would be very helpful for the growing number of developers on the new M1 devices as well.
I currently fail in building a docker image for development on a M1 Mac because of the missing ngx_pagespeed ARM support. 😢
https://github.com/intershop/intershop-pwa/blob/develop/nginx/Dockerfile#L4-L5
It would be great if this could work as nicely as for the other platforms. 👍

@Dade88
Copy link

Dade88 commented Aug 2, 2021

I am afraid the project isn't being developed at the rate it should, surely because Google seems to have lost interest in the project, and we can see the latest stable release was released almost 1 year ago.

Having this in mind, I found other viable solutions to achieve some features of PageSpeed. For example, minification can be achieved by PHP (there's even an older nignx perl module); if done properly, you can even gz or br the files to squeeze even more performance. Removing images metadata can be done server side with programs like EXIFTool. Same applies for WebP images and many other features.

The main problem with this approach is you must find and tune every solution for your webserver. I am thinking about creating a repository to group solutions and solve this mess.

DISCLAIMER: This is by no means a message intended to offend devs or trying to push things out of nowhere. All the work done so far is much appreciated.

@jmarantz
Copy link
Contributor

jmarantz commented Aug 2, 2021

Please see https://groups.google.com/g/mod-pagespeed-discuss/c/SYx1nOS6HsE/m/4kkGpZ_3AgAJ TL;DR mod_pagespeed is in the hands of volunteers and is now incubating at the Apache Software Foundation. Volunteers welcome, particularly if there is a feature or platform you want supported.

@Danrancan
Copy link

I can second a vote for an arm version (specifically for raspberry pi 4). I am running a webserver off of nginx on a raspi, and definitely need to be sure that I can get Pagespeed working on it in the future. Any places where I can petition developers to add this into the pagespeed roadmap?

@Danrancan
Copy link

https://gitlab.com/gusco/ngx_pagespeed_arm

@pilfs I also got this running on my raspberry Pi 4 using the nginx mainline version 1.21.5. Thanks a ton for this! Is there anything that I should consider or be worried about since I'm using nginx mainline 1.21.5? Do you keep the code for this up to date? Sorry if it sounds like a noob question. I'm most likely still a noob!

@Danrancan
Copy link

Is there any further plans on adding support for arm devices with ngx_pagespeed?

I think that theres s a growing demand with more and more providers selling and hosting servers based on the arm architecture..

I wrote a tutorial to compile the pagespeed module for the Raspberry Pi 4 and Raspberry Pi 3 (aarch64 ARM) based on @pilfs work and instructions, as well as instructions from linuxbabe.com. Both instruction sets have been modified to compile the Pagespeed Module for Nginx-1.21.6. Feel free to check it out and report back anything that doesn't work properly.

Tutorial is HERE:
https://nerd-tech.net/2022/01/26/how-to-compile-and-ngx_pagespeed-nginx-pagespeed-module-for-arm-architecture-on-the-raspberry-pi-4-or-any-other-aarch64-devices-running-ubuntu-server-20-04/

@Danrancan
Copy link

We don't currently have plans to support ARM mostly because I don't think we've especially been peppered with requests for it.

We have a lot of library dependencies and I imagine at least some of them don't support ARM, which makes this a lot more painful.

I believe the only thing incompatible with arm is that there are no arm PSOL libraries other than , which is believe are outdated. I have successfully compiled pagespeed on Ubuntu Server for the Raspberry Pi 4 using these aarch64 PSOL libraries, but I don't quite understand the repercussions of using these outdate libraries. Do you know if there is any way to compile updated arm64 versions of the PSOL libraries myself to include in pagespeed during ps compilation? If you have any ideas, please let me know. Otherwise, consider this post me peppering you with requests for an ARM compatible pagespeed module.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests